美文网首页
js进阶二

js进阶二

作者: Komolei | 来源:发表于2017-03-14 15:56 被阅读0次
    1. JavaScript 定义了几种数据类型? 哪些是原始类型?哪些是复杂类型?原始类型和复杂类型的区别是什么?
      六种:number、string、Boolean、object、undefined、null;
      原始类型: number、string、boolean
      复杂类型:object,其中又分为狭义的对象;数组arr;函数function;正则表达式regexp
      undefined和null作为特殊值,不考虑其中。
      区别:原始类型是最基础的类型,不能再分了;而复杂类型可以看成是基础类型(值)的集合体,相当于一个容器中放有各种基础类型值。

    2. typeof和instanceof的作用和区别?
      typeof:可以查看类型的,但是对于对象的细分则无法辨别,只能返回object;当然对于函数还是能返回函数的。
      instanceof:可以细分出对象的类型,看看是否属于数组还是对象;

    3. 如何判断一个变量是否是数字、字符串、布尔、函数
      typeof 变量,看返回什么值就知道是什么类型了。

    4. NaN是什么? 有什么特别之处?
      NaN是not a number,非数字,其与任何数值都不想等同时NaN!=NaN

    5. 如何把非数值转化为数值?
      parseInt();parseFloat();
      parseInt( ,几进制);parseFloat( ,几进制)
      number;

    6. ==与===有什么区别
      区别:==判断是否相等;
      ===的要求更高,不光是值相等,还是其的类型也是相等的;

    7. break与continue有什么区别
      区别:break是结束其以后的语句执行,跳出循环体。
      continue:是结束这次其之后的语句执行,重新进行新一次的循环

    8. void 0 和 undefined在使用场景上有什么区别
      void是执行其的表达式,在返回undefined;
      void 0 是执行0,返回undefined;
      undefined是表示不存在的值,就是此处不存在任何的值。分为1、变量声明却没有赋值; 2、调用函数时,没有提供参数,这参数则为undefined;3、在对象中没有赋值属性,则属性为undefined;4、函数中没有返回值,则返回undefined;

    9. 以下代码的输出结果是?为什么?
      console.log(1+1); 2,数值相加
      console.log("2"+"4"); "24";其都是为字符串,是字符的相加
      console.log(2+"4"); "24"当有字符出现的时候,js解释器会将其他的非字符转化为字符,然后在进行字符的相加
      console.log(+"4");4;当只有一个字符串存在的时候,js解释器会将其转化为数值,还变成绝对值

    10. 以下代码的输出结果是?
      var a = 1;
      a+++a; (a++)+a等于3,其中a++时,a还是等于1,然后+a时,a加上1,变成了2,所以转为为1+2=3;
      typeof a+2; (typeof a)+2等于number2

    11. 以下代码的输出结果是? 为什么
      var a = 1;
      var b = 3;
      console.log( a+++b ); (a++)+b等于4

    12. 遍历数组,把数组里的打印数组每一项的平方
      var arr = [3,4,5]
      for(var i=0;i<arr.length;i++){
      console.log(arr[i]*arr[i]);
      }

    13. 遍历 JSON, 打印里面的值
      var obj = {
      name: 'hunger',
      sex: 'male',
      age: 28
      }
      for (var key in obj) {
      console.log(obj[key]);

    14. 以下代码输出结果是? 为什么 (选做题目)
      var a = 1, b = 2, c = 3;
      var val = typeof a + b || c >0
      console.log(val)
      答案:number2 ;逻辑运算符的断电,var val=((typeof a)+b )|| (c>0)。其中的(c>0)不执行,因为前面为真了。然后为什么会返回undefined不知道了;

      var d = 5;
      var data = d ==5 && console.log('bb')
      console.log(data)
      

    答案: bb
    undefined,
    结构为var data= ( (d ==5) && (console.log('bb') ) )
    语句运行到var data时,先运行d==5成立为true,然后进行console.log('bb'),然后打印出bb,然后为什么会返回undefined不知道了;

        var data2 = d = 0 || console.log('haha')
        console.log(data2)
    

    答案:haha
    undefined
    var data2= ((d=0) ||(console.log('haha')),由于运算符的优先性,先进行||,然后d=0为false;符合||的定义,则进行console,打印haha,然后为什么会返回undefined不知道了;

        var x = !!"Hello" + (!"world", !!"from here!!");
        console.log(x)
    

    答案: 2
    因为!!为布尔类型,则会返回布尔值,先进行小括号中的逗号运算,返回true,然后进行!!hello,返回为true,然后不知道了。。。。。。。。。。。。。。蛋疼

    相关文章

      网友评论

          本文标题:js进阶二

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