我有一个函数应该检查传递给函数的参数是否未定义,如果其中任何一个是,则返回false。我使用node.js
。
我遇到的问题是将arguments
对象记录到控制台会返回意外的输出。
这是我的箭头功能:
var checkYargsExist = () => {
//console.log(arguments);
for (x in arguments) {
if (arguments[x] === undefined) {
return false;
}
}
}
假设: var alpha =" apple&#34 ;; var beta =" banana&#34 ;;
如果我这样调用该函数:checkYargsExist(alpha, beta)
,我希望console.log()
吐出[alpha, beta]
,并比较"apple" === undefined
,"banana" === undefined
,但我的终端是吐出这样的东西:
{ '0': {},
'1':
{ [Function: require]
resolve: [Function: resolve],
main:
Module {
id: '.',
exports: {},
parent: null,
filename: '/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/app.js',
loaded: false,
children: [Object],
paths: [Object] },
extensions: { '.js': [Function], '.json': [Function], '.node': [Function] },
cache:
{ '/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/app.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/lodash/lodash.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/yargs/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/yargs/yargs.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/lodash.assign/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/yargs/lib/command.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/yargs/lib/completion.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/yargs-parser/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/camelcase/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/yargs-parser/lib/tokenize-arg-string.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/yargs/lib/usage.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/cliui/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/string-width/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/strip-ansi/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/ansi-regex/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/code-point-at/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/is-fullwidth-code-point/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/number-is-nan/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/wrap-ansi/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/decamelize/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/window-size/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/yargs/lib/obj-filter.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/set-blocking/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/yargs/lib/validation.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/y18n/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/read-pkg-up/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/find-up/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/path-exists/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/pinkie-promise/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/read-pkg/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/load-json-file/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/graceful-fs/graceful-fs.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/graceful-fs/polyfills.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/graceful-fs/fs.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/graceful-fs/legacy-streams.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/strip-bom/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/is-utf8/is-utf8.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/parse-json/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/error-ex/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/is-arrayish/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/parse-json/vendor/parse.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/parse-json/vendor/unicode.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/pify/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/normalize-package-data/lib/normalize.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/normalize-package-data/lib/fixer.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/semver/semver.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/validate-npm-package-license/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/spdx-expression-parse/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/spdx-expression-parse/parser.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/spdx-correct/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/spdx-license-ids/spdx-license-ids.json': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/hosted-git-info/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/hosted-git-info/git-host-info.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/hosted-git-info/git-host.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/is-builtin-module/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/builtin-modules/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/normalize-package-data/lib/extract_description.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/normalize-package-data/lib/typos.json': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/normalize-package-data/lib/make_warning.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/normalize-package-data/lib/warning_messages.json': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/path-type/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/pkg-conf/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/object-assign/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/symbol/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/require-main-filename/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/notes.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/os-locale/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/lcid/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/invert-kv/index.js': [Object],
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules/lcid/lcid.json': [Object] } },
'2':
Module {
id: '.',
exports: {},
parent: null,
filename: '/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/app.js',
loaded: false,
children: [ [Object], [Object], [Object] ],
paths:
[ '/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/node_modules',
'/Users/raigovind93/Dropbox/Localhost/Coding/Node/node_modules',
'/Users/raigovind93/Dropbox/Localhost/Coding/node_modules',
'/Users/raigovind93/Dropbox/Localhost/node_modules',
'/Users/raigovind93/Dropbox/node_modules',
'/Users/raigovind93/node_modules',
'/Users/node_modules',
'/node_modules' ] },
'3': '/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app/app.js',
'4': '/Users/raigovind93/Dropbox/Localhost/Coding/Node/notes-node-app' }
我做错了什么?谢谢!
答案 0 :(得分:4)
箭头函数表达式与函数表达式相比具有更短的语法,不绑定它自己的参数,super或new.target。
您正在检查函数创建范围的arguments
。
如果要使用函数的arguments
,请不要使用箭头函数创建它。改为坚持使用常规函数声明或函数表达式。