2016-12-07 28 views
0

我有一個函數應該檢查傳遞給函數的參數是否未定義,如果其中任何一個是,則返回false。我正在使用node.jsJavaScript參數對象返回意外輸出

我遇到的問題是將arguments對象記錄到控制檯正在返回意外的輸出。

這裏是我的箭功能:

var checkYargsExist =() => { 
    //console.log(arguments); 
    for (x in arguments) { 
     if (arguments[x] === undefined) { 
      return false; 
     } 
    } 
} 

假設: VAR阿爾法= 「蘋果」; var beta =「banana」;

如果我調用該函數像這樣: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

'return語句停止函數的執行並從該函數返回一個值.'這意味着你不能在return語句下面放置任何代碼。 –

+0

你沒有在箭頭函數中傳遞參數,所以你聲明瞭全局@GovindRai? –

+0

'return false'的用途是什麼? – guest271314

回答

4

From MDN:相比函數表達式

箭頭函數表達式具有較短的語法和不結合其自己的這個,參數,超級或new.target。

正在檢查如果你想使用的功能的arguments功能在。

創建範圍的arguments,那就不要用箭頭函數創建它。改爲使用常規函數聲明或函數表達式。

+0

啊,我從來不知道!只要遵循一個教練真正推動箭頭功能的課程,絕對有利可圖!謝謝! –