美文网首页
【Javascript】流程控制语句、函数和作用域

【Javascript】流程控制语句、函数和作用域

作者: NinthG | 来源:发表于2017-08-26 10:32 被阅读0次

    d---

    NaN是什么? 有什么特别之处?

    NaN

    简单的理解是:NaN是一个数值,但具体不知道是多少
    我们先用typeof看看NaN的数据类型可以验证其数据类型

    typeof NaN
    "number"
    

    特点

    NaN 与其他数值进行比较的结果总是不相等的,包括它自身在内。
    因此,不能与 Number.NaN 比较来检测一个值是不是数字,而只能调用 isNaN() 来比较。


    break与continue有什么区别?

    break和continue语句用于在循环中精确控制代码的执行

    • break
      用于强制退出循环体,执行循环后面的语句
    • continue
      用于退出本次循环,执行下次循环

    switch case 语句中的 break 有什么作用?

    如果表达式等于case的值,对应的语句就会执行,break关键字会使程序跳出switch语句


    以下代码的输出结果是? 为什么

    var a = 1;
    var b = 3;
    console.log( a+++b );
    
    • 输出结果
      结果为4
    • 原因
      主要判断a+++b的具体执行顺序,根据运算符优先级可知,++运算符优先级高于+,且自增的后置运算符的优先级高于前置运算符,所以执行顺序应为(a++)+b

    遍历数组,把数组里的打印数组每一项的平方

    var arr = [3,4,5]
    

    解题如下,使用for in的方法

    var arr = new Array(3, 4, 5) 
    for(var item in arr) {
    console.log(arr[item]*arr[item]);
    }
    

    以下代码输出结果是? 为什么?

    var a = 1, b = 2, c = 3;
    var val = typeof a + b || c >0
    console.log(val) 
    输出为number2 // (typeof 2)+(b||c>0)
    
    var d = 5;
    var data = d ==5 && console.log('bb')
    console.log(data)
    输出bb // (d==5)&&(console.log('bb'))
    
    var data2 = d = 0 || console.log('haha')
    console.log(data2)
    输出haha // 0||console.log('haha')为'haha',赋值给d,再赋值给data2
     
    var x = !!"Hello" + (!"world", !!"from here!!");
    console.log(x)
    输出2 // !!"Hello"为true, (!"world", !!"from here!!")也为true,两true相加转换为数字1+1,得2
    

    关于 if(xx)和 a==b的判断

    博客再补,通过学习,简单的总结就是:

    • if(xx) 应当把xx转换成布尔值之后判断
    • xx == xx 应当把xx转换成数字进行比较判断
      其中有一些特殊的东西:
    • NaN === NaNfalse
    • 空字符串转布尔值为false,其他字符串为true

    参考文章

    JavaScript NaN属性|W3School
    JavaScript 遍历数组的方式for循环&for in|脚本之家

    相关文章

      网友评论

          本文标题:【Javascript】流程控制语句、函数和作用域

          本文链接:https://www.haomeiwen.com/subject/lilmdxtx.html