js 变量、数据类型、作用域整理

js 变量、数据类型、作用域整理

一、Js 知识体系

JS分为三部分:

  1.ECMAScript标准  js基本语法 

  2.DOM  文档对象模型     DOM提供了方法操作DOM树上的节点

  3.BOM  浏览器对象模型    通过BOM可以 获得屏幕分辨率 控制浏览器跳转 弹出框 

更多参考:

JavaScript 与 ECMAScript 的关系

BOM中的顶级对象就是window,DOM中的顶级对象是document: JavaScript Window对象 整理

              document是window的一个子对象。

    window.onload(){}

    setInterval()  clearInterval()

    setTimeout()  clearTimeout()

    Location 对象     

DOM对象: HTML DOM / JavaScript DOM 简介 和整理

二、Js 数据类型

1.基本数据类型

number / string / boolean / undefined / null    (可使用 typeof方法 来判断基础对象类型) 

2.引用数据类型

 function / object

  其中需要注意的是:

    引用数据类型会开辟出堆内存,它们指向的是 内存地址。

    字符串 之间用 '+'  会拼接字符串,如果其他类型数据和字符串拼接,会被转换为字符串,这其中涉及到变量的隐式转换

类型转换:

  数字类型转换:

    parseInt() / parseFloat() / Number()

    总结:想要转整数用parseInt(),想要转小数用parseFloat(),想要转数字:Number();要比上面的两种方式严格。

  其他类型转换:

    .toString() / String() / Boolean()

  补充:

    NaN 不是一个数字,或者不是数字与数字的计算就会得到 NaN  (isNaN()  判断一个值是不是 NaN)

    !    表示非,  !false == true  的结果为true  

操作符:

  算数运算符:+  -  * / %

  算数运算表达式:由算数运算符连接起来的表达式

  一元运算符:++ -- 

  二元操作符: && || 

  三元操作符: 条件?结果1 : 结果2

    复合运算符: +=  -=  *= /= %=

  复合运算表达式:由复合运算符连接起来的表达式

流程控制:

  if(){  } else if(){  }else{  }    

  switch(){  case  :;default:  ;  } 

  while(){  } / do{  }while() / for( ; ; ){  }  /for in

  其中:

    break 用来取消后续循环,continue  用来取消本次循环。

    switch中的条件判断 使用的是严格模式的全等于。

三、Js 内置对象

 实例方法---->必须要通过new的方式创建的对象(实例对象)来调用的方法

  静态方法---->直接通过大写的构造函数的名字调用的方法(直接通过大写的对象名字调用的)

       

  Array 创建方式有两种: 可以直接通过字面量创建  /  通过构造函数进行创建 : var a =[]   /   var a = new Array()

   JavaScript数组(三)数组对象使用整理

  Math 对象 :

    Javascript 数学函数 Math(二)

  Date 对象

    JavaScript Date对象和函数 (一)

  String 对象

    字符串可以看作是由很多字符组成的数组,字符串有不可变的特性,字符串的值之所以看起来是改变的,那是因为指向改变了,并不是真的值改变了。 

    Javascript 字符串(三) String对象&方法

       JSON 对象

                JavaScript JSON对象(一)

四、Js 作用域

作用域:

  分为全局作用域和局部作用域,根据所在的作用域不同,变量又分为全局变量和局部变量。

    其中还有块级作用域,被'{ }'包裹就可以看成一个块,其实的变量定义,使用var 定义可以被外部使用, 使用 const、let 不可以被外部使用。

    局部变量在函数作用域销毁时,就会被释放,而全局变量一旦被创建,就不会被释放,除非页面关闭(但是隐式全局变量可以被销毁,没有使用var声明的全局变量)。

  在所有作用域创建的时候,js引擎会有一个处理,预解释,它所做的事,就是提前把所有的变量声明了,所有的函数声明并定义了(所以你可以在定义函数之前来调用这个函数)。

    预解释中的变量提升,只会提升到当前作用域的最前面,而不是其他作用域。

    预解析会分段(多对的script标签中函数重名,预解析的时候不会冲突)。

       全局作用域,window:JavaScript Window对象 整理

原文地址:https://www.cnblogs.com/tianma3798/p/15054560.html