js进阶二

  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 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进阶二)