H5前端学习之路第4天--前端面试题 js

1.js的数据类型,null 和 undefined的区别,原始数据类型和引用数据类型的对比

(1).String,Object,Number,Boolean,Undefined,Null


(2).undefined:表示缺少值,在使用var 声明变量但未对其加以初始化时,这个变量的值就是undefined。

     null:表示没有对象,空对象


 

(3).

  原始数据类型:String,Number,Boolean,Undefined,Null

 引用数据类型:Object

   1)值存储方式不同:

    原始数据类型:将变量名和值都存储在栈内存中

      引用数据类型:将变量名存储在栈内存中,将值存储在堆内存中,并在栈内存中存储值的地址,该地址指向堆内存中的值。

     

 2)赋值方式不同:

   原始数据类型:当a赋值与b,两个变量以后进行值改变不会相互影响

  引用数据类型:a赋予b变量的是值地址,通过这个地址,两者指向的其实是堆内存中的同一个值,所以以后a,b任一变量对值进行改变,会直接影响另一个变量的值

2.let与var的区别

 ①var作用域为该语句所在的函数内,且存在变量提升;并且在函数外调用变量,不会报错,为undefined

 ②let作用域为该语句所在的代码块内,不存在变量提升;在函数外调用变量,会报错

例子:

{
  let a = 125;
  var b = 521;
}
a // Uncaught ReferenceError: a is not defined
b // 521

{
    tmp='abc';//ReferenceError: tmp is not defined
    let tmp;

test='11111';//11111
var test; }
 

posted on 2019-08-19 19:04  旺仔小裤头  阅读(154)  评论(0编辑  收藏  举报