Javascript 中的 && 和 || 使用小结

来源:http://www.sh-fengwen.com 作者:瘦身美容 人气:115 发布时间:2019-09-02
摘要:stdlib.js 普通情况下的 和 || 比较简单,这里不进行讨论。   准备两个对象用于下面的讨论。 // 打包模块module.exports = stdlib;// 声明方法stdlib.prototype.toString = toString;stdlib.prototype.talk = tal

stdlib.js

普通情况下的 && 和 || 比较简单,这里不进行讨论。

 

准备两个对象用于下面的讨论。

// 打包模块
module.exports = stdlib;

// 声明方法
stdlib.prototype.toString = toString;
stdlib.prototype.talk = talk;

// 声明变量
stdlib.prototype.className = null;

// 构造方法
function stdlib(name)
{
 this.className = 'class: ' + name;
 // 获取IO流
 this.stdin = process.stdin;
 this.stdout = process.stdout;
};

// 方法
function toString() {
 return this.className;
};

function talk () {
 var interface = require('readline');
 var rl = interface.createInterface(this.stdin, this.stdout);
 rl.setPrompt('Nerds> ');
 rl.prompt();
 rl.on('line', function (cmd) {
  switch(cmd.trim()) {
   case ':q!': 
    console.log('stream close!');
    process.exit(0);
    break;

   case 'girlfriend': 
    console.log('Dude,I bet you won`t :D');
    break;


   default: 
    console.log('Say what? I might have heard `' + cmd.trim() + '`');
    break;

  }
  rl.prompt();
 }).on('close', function (cmd) {
  console.log('Enjoy js world, have nice day :D');
  process.exit(0);
 });
};

复制代码 代码如下:

 

var alice = {
name: "alice",
toString: function () {
return this.name;
}
}

main.js

var smith = {
name: "smith",
toString: function () {
return this.name;
}
}

 

在 javascript 中,对于 && 不仅仅可以用于 boolean 类型,也不仅仅返回 Boolean 类型的结果。 l 如果第一个操作数是 Boolean 类型,而且值为 false ,那么直接返回 false。
l 如果第一个操作数是 Boolean 类型,而且值为 true,另外一个操作数是 object 类型,那么将返回这个对象。
l 如果两个操作数都是 object 类型,那么,返回第二个对象。
l 如果任何一个操作数是 null,那么,返回 null。
l 如果任何一个操作数是 NaN,那么返回 NaN。
l 如果任何一个操作数是 undefinded,那么返回 undefined。

// 安装模块
var stdlib = require('./stdlib');
// 从模块中创建对象
var tsh = new stdlib('my stdlib');

console.log(tsh.toString());
tsh.talk();

alert(false && alice); // false
alert(true && alice); // alice

图片 1
node.js中采用 modules.exports = class 将某个类暴露供安装对应模块的文件使用

alert(alice && smith); // smith
alert(smith && alice); // alice

 

alert(null && alice); // null
alert(NaN && alice); // NaN
alert(undefined && alice); // undefined
alert(alice && undefined); // undefined

 

对于 || 来说,同样也不仅仅用于 Boolean 类型,也不仅仅返回 Boolean 类型的结果。
事实上,null、undefined、NaN 都将被看作 false。而对象被当作 true。

Lib.js:
module.exports = Lib;
function Lib() {}
...

UserFile.js 2:
var installModule = module('./Lib');
var instanceObject = installModule();
...

l 如果第一个操作数是 boolean 类型,而且值为 true, 那么,直接返回 true。
l 如果第一个操作数是 Boolean 类型,而且值为 false ,第二个操作数为 object,那么返回 object 对象。
l 如果两个操作数都是 object 类型,那么返回第一个对象。
l 如果两个操作数都是 null,那么,返回 null。
l 如果两个操作数都是 NaN,那么返回 NaN。
l 如果两个操作数都是 undefined,那么,返回 undefined。
alert(false || alice);         // alice

 

alert(true || alice);          // true

类似于java的打包和导入包

alert(alice || smith);         // alice

本文由美高梅游戏平台网站发布于瘦身美容,转载请注明出处:Javascript 中的 && 和 || 使用小结

关键词:

最火资讯