[Javascript 高级程序设计]学习心得记录5 操作符和语句
来源:互联网 发布:淘宝男装 编辑:程序博客网 时间:2024/06/06 07:06
所有编程语言都有的操作符和语句,大部分内容都差不多。这里回顾回顾,重点讲讲js的操作符和语句跟其他语言不同的地方。
一,操作符
一元操作符和位操作符就不说了,用得太少了,要用的时候看也不迟。js的操作符操作符最值得注意的地方是:会把处理的数据变成自己操作的类型,然后进行操作。
(1)布尔操作符
逻辑非(!):值得注意的是对象,非空字符串,非0数值都会先转化成true;而"",0,null,NaN,undefined都会先转化成false。
alert(!false); //true alert(!"blue"); //false alert(!0); //true alert(!NaN); //true alert(!""); //true alert(!12345); //false
逻辑与($$):要注意的地方是:
1. 短路操作
2.第一个操作数是对象,返回第二个操作数。第二个操作数是对象时,第一个返回true的话,返回第二个操作数。
3.有一个操作数是null,NaN, undefined 时,返回null,NaN, undefined。
逻辑或(||):和与的区别是第二个操作数是对象时,第一个返回false的话,返回第二个操作数。
可以利用逻辑或来避免为变量赋非法值,如var num = num1 || num2 当num1为空时,num2还可以顶上。
(2)乘法操作符
没什么好说的,Infinity*0 结果是NaN
(3)加性操作符
要注意的是,有两点:
1. true和false会转化成1和0,null, undefined被转化成0,有NaN的结果都是NaN
2.操作数为字符串时,+会变成字符串拼接符号。
var result1 = 5 + 5; //two numbers alert(result1); //10 var result2 = 5 + "5"; //a number and a string alert(result2); //"55"
(4)关系操作符
1,当一个操作数是数字,另一个不是的时候,会把另一个操作数转化成数字,不能转化的话结果就是false
2,当两个操作数都是字符串的时候,按顺序比较字符的编码,值得注意的是 “23”<“3”
3,如果操作数是对象,就会调用对象的valueOf()方法,没有就调用toString()方法
4,值得注意的是 null>0 为false null>=0 为true(http://www.jb51.net/article/106370.htm)
(5)相等操作符
1,值得注意的是:null和undefined是相等的,但是不等于0 (此时不尝试转换,直接为false)
2,全等(===),除了不转换操作数,其他都和==一样
二,语句
语句值得一提的地方只有switch。js的switch可以使用任何数据类型,case的值可以是变量或者表达式
switch ("hello world") { case "hello" + " world": alert("Greeting was found."); break; case "goodbye": alert("Closing was found."); break; default: alert("Unexpected message was found."); }
var num = 25; switch (true) { case num < 0: alert("Less than 0."); break; case num >= 0 && num <= 10: alert("Between 0 and 10."); break; case num > 10 && num <= 20: alert("Between 10 and 20."); break; default: alert("More than 20."); }
就说这么多吧,结束。
- [Javascript 高级程序设计]学习心得记录5 操作符和语句
- [Javascript 高级程序设计]学习心得记录6 变量和作用域
- [Javascript 高级程序设计]学习心得记录 函数参数传递与引用
- [Javascript 高级程序设计]学习心得记录4 基本包装类型
- [Javascript 高级程序设计]学习心得记录7 引用类型(上)
- [Javascript 高级程序设计]学习心得记录8 引用类型(下)
- [Javascript 高级程序设计]学习心得记录9 js面向对象
- [Javascript 高级程序设计]学习心得记录10 js函数表达式
- [Javascript 高级程序设计]学习心得记录11 js的BOM
- [Javascript 高级程序设计]学习心得记录12 DOM基础
- JavaScript高级程序设计第三章——操作符和语句
- javascript高级程序设计笔记(一)语法和操作符
- [Javascript 高级程序设计]学习心得记录2 Javascript的垃圾回收机制
- [Javascript 高级程序设计]学习心得记录3 根据对象数组的属性进行排序
- javascript高级程序设计之相等操作符
- javascript高级程序设计笔记--js操作符
- 《JavaScript高级程序设计》读书笔记--2-操作符
- Javascript高级程序设计学习记录
- 安装 Git
- 合并使用gpu::FarnebackOpticalFlow计算的水平光流flowx 和垂直光流flowy
- 20171129项目 北风网 crm
- 【财富空间】一文看懂中美AI产业布局,美国领衔芯片、算法、NLP领域
- iOS SDK详解之UIWindow(让视图在最上层)
- [Javascript 高级程序设计]学习心得记录5 操作符和语句
- mybatis插入数据时,不能入库
- Spring AOP实现方式
- 通过程序设计几何图形(Shape)、矩形(Rectangle)、圆形(Circle)、正方形(Square)几种类型, 能够利用接口和多态性计算几何图形的面积和周长并显示。
- Hbase 常用命令整理
- 带缓存的I/O和不带缓存的I/O的区别
- scrollview嵌套recycleview recycleview 不显示问题
- 状态栏使用详解
- 详细解释大数定理+中心极限定理(二)