JavaScript-基本概念与数据类型

96 阅读2分钟

基本的概念

  • 区分大小写

  • 标识符

    • 第一个字符必须是字母, _,$
    • 其他字符可以是字母,下划线,美元符号,数字
  • 严格模式

    • 不同的解析与执行模型
  • 关键字

    • break, do, instanceof, typeof, catch,....
  • 保留字

    • abstract, enum....
  • 变量

    • 松散类型,表示可以饥接任何类型

    • 全局变量

      function test(){
          message = 'hi' 全局变量
      }
      
    • 可以定义多个变量

      var message='hi', found=false, age=29;

  • typeof 操作符 返回某个字符串

    • ‘undefined'
    • 'boolean'
    • 'string'
    • 'number'
    • 'object'
    • 'function'
  • instanceof 判断对象是否属于某个对象类型
  • == 与 ===, 0、1与true , false

    • 当进行双等号比较时候: 先检查两个操作数数据类型,如果相同, 则进行===比较, 如果不同, 则愿意为你进行一次类型转换, 转换成相同类型后再进行比较, 而===比较时, 如果类型不同,直接就是false.

      console.log(null === undefined)//false
      console.log(null == undefined)//true
      ​
      console.log(null === 0)//false
      console.log(null == 0)//false 不可能转为相同类型
      ​
      console.log(null === false)//false
      console.log(null == false)//false
      ​
      console.log(0 === undefined)//false
      console.log(0 == undefined)//false
      ​
      ​
      console.log(0 === false)//false
      console.log(0 == false)//true
      ​
      console.log(1 === true)//false
      console.log(1 == true)//true
      console.log('--------------')
      ​
      

NaN 非数值 not a number

  • NaN 不等于NaN
  • isNaN 判断

数据类型

  • Undefined

    • var a; 声明,未初始化

    • 不等于 尚未定义的变量,

      var age;

      alert(message)报错

    • typeof 对 age, message都可以返回’undifined'

  • Null

    • 空对象指针, 用typeof 判断会返回object
    • 要用来保存对象,最后初始化为null
  • Boolean

    • 可转为true , 任何非空字符串, 任何非零数字值,任何对象

    • 可转为false, ""空串,o, NaN, null, undefined

      if(0){
          console.log(0)
      }
      if(1){
          console.log(1)
      }
      if(null){
          console.log(null)
      }
      if(undefined){
          console.log(undefined)
      }
      ​
      if(aa){//报错
          console.log('aa')
      }
      var a = {'d': 1}
      if (a) {
          console.log(a);//{'d':1}
      }
      
  • Number

    • 表示整数,浮点值
    • 整数,可以用10进制,8,16进制
    • 数值范围: 不能保全世界上所有的数值, min: 5e-324, max: 1.79....e+308, 表示不了转为负无穷,或者正无穷
    • 判断是否在范围内, isFinite(result)
  • String 16位的Unicode字符组成的字符序列

    • 长度 .length
    • 字符字面量 \n 换行,表示一个字符
    • 一旦创建,不能改变
    • toString返回字符串的副本

----------以上是基本数据类型-----------------------------------------

-------对象类型是复杂数据类型

  • Object

    • var o = new Object //有效,但不推荐省略括号
    • constructor 保存作创建当前对象的函数
    • hasOwnProperty(propertyName) 检查是否有属性于当前对象的实例中,而不是原型中
    • isPrototypeOf(object) 检查是否ojbect为原型
    • toString
    • valueOf 返回对象字符串

数值转换

Numer 可以把非数值转为数值

parseInt()//只能转字符串

parseFloat()//只能转字符串

Number() 函数转换规则

  • true->1, false->0

  • null->0

  • undefined -> NaN

  • 字符串

    • 只包含数字,带+号,-号,转为数字
    • 浮点字符串,转为浮点数
    • 十六进制,转为十进制
    • 空串为0
    • 上面格式外,NaN
    • 对象,先调用对象valueOf方法,转换,如果是NaN, 会继续调用toString,进行转换