[Javascript 高级程序设计]学习心得记录5 操作符和语句

所有编程语言都有的操作符和语句,大部分内容都差不多。这里回顾回顾,重点讲讲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.");
        }

就说这么多吧,结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值