JavaScript基本数据类型

前端知识点系列三:JavaScript

持续更新……

1. JavaScript基本数据类型

  • undefined
  • null
  • boolean
  • number
  • string
  • Symbol (es6)

2. null,undefined 的区别

  • null 表示一个对象被定义了,值为“空值”;
  • undefined 表示不存在这个值。

typeof undefined //"undefined"
undefined :是一个表示”无”的原始值或者说表示”缺少值”,就是此处应该有一个值,但是还没有定义。当尝试读取时会返回 undefined;
例如变量被声明了,但没有赋值时,就等于undefined

typeof null //"object"
null : 是一个对象(空对象, 没有任何属性和方法);
例如作为函数的参数,表示该函数的参数不是对象;

3. JavaScript的基本规范

  1. 不要在同一行声明多个变量。
  2. 请使用 ===/!==来比较true/false或者数值
  3. 使用对象字面量替代new Array这种形式
  4. 不要使用全局函数。
  5. switch语句必须带有default分支
  6. 函数不应该有时候有返回值,有时候没有返回值。
  7. for循环必须使用大括号
  8. if语句必须使用大括号
  9. for-in循环中的变量 应该使用var关键字明确限定作用域,从而避免作用域污染。

4. 数据模型

  • 栈:原始数据类型(Undefined,Null,Boolean,Number、String)
  • 堆:引用数据类型(对象、数组和函数)

两种类型的区别是:存储位置不同

  • 原始数据类型直接存储在栈(stack)中的简单数据段,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储;
  • 引用数据类型存储在堆(heap)中的对象,占据空间大、大小不固定,如果存储在栈中,将会影响程序运行的性能;

引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。

img

stack.gif

5. 移动端如何获取页面宽度。

document.documentElement.clientWidth

6. 写一个函数节流方法

throttle(method, context) {
  clearTimeout(method.id);
  method.id = setTimeout(function(){
    method.call(context);
  }, 100)
}

7. XHR对象的readyState属性有哪些?

  • 0:未初始化。open()没有调用
  • 1:启动。open()被调用,send()还没被调用
  • 2:发送。send()被调用,还未收到响应数据
  • 3:接受。正在接收响应数据
  • 4:完成。已经收到全部响应数据

猜你喜欢

转载自blog.csdn.net/weixin_41791345/article/details/79546619