javascript高级程序设计笔记--js操作符
来源:互联网 发布:手机开淘宝店实名认证 编辑:程序博客网 时间:2024/06/05 00:49
在对非数值应用一元加操作符时,该操作符会像Number()转型函数一样对这个值执行转换。换句话说,布尔值false和true将被转换为0和1,字符串值会被按照一组特殊的规则进行解析,而对象先是调用它们的valueOf()方法(或)toString()方法,再转换得到的值。例如:
注意 减号同样适用 例如 s1 = -s1; 值变成-1
逻辑非
如果操作数是对象,返回false
如果操作数是空字符串,返回false
如果操作数是一个非空字符串,返回false
如果操作数是数值0,返回false
如果操作数是任意非0数值(包括Infinity),返回false
如果操作数是null,返回true
如果操作数是NaN,返回true
如果操作数是undefined,返回true
逻辑与
逻辑与操作可以应用于任何类型的操作数,而不仅仅是布尔值。再有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值;此时它遵循下列规则:
如果第一个操作数是对象,则返回第二个操作数。
如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才会返回该对象。
如果两个操作数都是对象,则返回第二个操作数。
如果有一个操作数是null,则返回null。
如果有一个操作数是NaN,则返回NaN。
如果有一个操作数是undefined,则返回undefined。
逻辑或
如果第一个操作数是对象,则返回第一个操作数。
如果第一个操作数的求值结果为false,则返回第二个操作数。
如果两个操作数都是对象,则返回第一个操作数。
如果两个操作数是null,则返回null。
如果两个操作数是NaN,则返回NaN。
如果两个操作数是undefined,则返回undefined。
可以利用逻辑或的这一行为来避免为变量赋null或undefined值,例如:
var myObject = preferredObject || backupObject;
在这个例子中,变量myObject奖杯赋予等号后面两个值中的一个。变量preferredObject中包含优先赋给变量myObject的值,变量backupObject负责在preferredObject中不包含有效值的情况下提供后备值。如果preferredObject的值不是null,那么它的值将赋给myObject;如果是null,则将backupObject的值赋给myObject。
关系操作符
例如 var result = 5>2; //true
var result = "23" > "3"; //false 因为ASCII码中2为50,3为51
全等和不全等
===表示两个操作数未经转换就相等的情况下返回true,例如
with语句
with语句的作用是将代码的作用域设置到一个特定的对象中。例如
上面的代码都包含location对象。如果使用with语句,可以改写为:
ECMAScript中的所有参数传递都是值传递,不可能通过引用传递参数。
可以向ECMAScript函数传递任意数量的参数,并且可以通过arguments对象来访问这些参数。
由于不存在函数签名的特性,ECMAScript函数不存在重载。
var s1 = "01"; s1 = +s1; //值变成数值1var s2 = "1.1"; s2 = +s2; //值变成数值1.1var s3 = "z"; s3 = +s3; //值变成NaNvar b = false; b = +b; //值变成数值0var f = 1.1; f = +b; //值未变,仍是1.1var o = { o = + o; //值变成数值-1valueOf : function(){return -1;}}
注意 减号同样适用 例如 s1 = -s1; 值变成-1
逻辑非
如果操作数是对象,返回false
如果操作数是空字符串,返回false
如果操作数是一个非空字符串,返回false
如果操作数是数值0,返回false
如果操作数是任意非0数值(包括Infinity),返回false
如果操作数是null,返回true
如果操作数是NaN,返回true
如果操作数是undefined,返回true
!false //true!"blue" //false!0 //true!NaN //true!"" //true!12345 //false
逻辑与
逻辑与操作可以应用于任何类型的操作数,而不仅仅是布尔值。再有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值;此时它遵循下列规则:
如果第一个操作数是对象,则返回第二个操作数。
如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才会返回该对象。
如果两个操作数都是对象,则返回第二个操作数。
如果有一个操作数是null,则返回null。
如果有一个操作数是NaN,则返回NaN。
如果有一个操作数是undefined,则返回undefined。
逻辑或
如果第一个操作数是对象,则返回第一个操作数。
如果第一个操作数的求值结果为false,则返回第二个操作数。
如果两个操作数都是对象,则返回第一个操作数。
如果两个操作数是null,则返回null。
如果两个操作数是NaN,则返回NaN。
如果两个操作数是undefined,则返回undefined。
可以利用逻辑或的这一行为来避免为变量赋null或undefined值,例如:
var myObject = preferredObject || backupObject;
在这个例子中,变量myObject奖杯赋予等号后面两个值中的一个。变量preferredObject中包含优先赋给变量myObject的值,变量backupObject负责在preferredObject中不包含有效值的情况下提供后备值。如果preferredObject的值不是null,那么它的值将赋给myObject;如果是null,则将backupObject的值赋给myObject。
关系操作符
例如 var result = 5>2; //true
var result = "23" > "3"; //false 因为ASCII码中2为50,3为51
全等和不全等
===表示两个操作数未经转换就相等的情况下返回true,例如
var result1 = ("55" == 55); //truevar result2 = ("55" === 55); //false
with语句
with语句的作用是将代码的作用域设置到一个特定的对象中。例如
var qs = location.search.substring(1);var hostname = location.hostname;var url = location.href;
上面的代码都包含location对象。如果使用with语句,可以改写为:
with(location){var qs = search.substring(1);var hostname = hostname;var url = href;}
ECMAScript中的所有参数传递都是值传递,不可能通过引用传递参数。
可以向ECMAScript函数传递任意数量的参数,并且可以通过arguments对象来访问这些参数。
由于不存在函数签名的特性,ECMAScript函数不存在重载。
0 0
- javascript高级程序设计笔记--js操作符
- javascript高级程序设计笔记--js数据类型
- 《JavaScript高级程序设计》笔记——chapter3 操作符
- javascript高级程序设计笔记(一)语法和操作符
- javascript高级程序设计笔记1-数组操作
- 高级JS内容——JavaScript高级程序设计笔记
- 《JavaScript高级程序设计》笔记
- 《javascript 高级程序设计》笔记
- JavaScript高级程序设计笔记
- Javascript高级程序设计-笔记
- JavaScript高级程序设计笔记
- 《JavaScript 高级程序设计》笔记
- javaScript 高级程序设计 笔记
- javascript 高级程序设计 笔记
- js 高级程序设计笔记
- JS高级程序设计-笔记
- javascript高级程序设计之相等操作符
- 《JavaScript高级程序设计》读书笔记--2-操作符
- 线性判别分析Linear Discriminant Analysis学习心得
- 【leetcode】No. 235 LCABST
- Jquery 对新插入的节点 绑定Click事件失效
- 哈佛为什么群星闪耀?
- CodeForces 7A
- javascript高级程序设计笔记--js操作符
- 黑马程序员-IOS学习笔记 用位远算来判断一个数是奇数还是偶数
- EditText文本框的焦点事件
- PCB设计的一些原则及Protel DXP的一些操作总结
- VB的CRC32校验代码
- 如何在ubuntu下找到Choregraphe应用程序
- ubuntu upgrade时遇到boot分区容量不足解决办法
- 如何查看交换机的单板序号、插槽号、端口号??
- Cannot find interface declarartion for 'nsobject' & Unknow type name 'NSString'