美文网首页
q第三章 类型、值和变量

q第三章 类型、值和变量

作者: 没人能救你呀吼 | 来源:发表于2016-06-05 15:36 被阅读13次

    数据类型:

    原始类型(primitive type)对象类型(object type)
    原始类型包括:

    string number boolean null undefined
    

    对象是属性(property)的集合,每个属性都由”名/值对“组成。
    其中有一个特殊的对象——全局对象(global object)

    3.1 数字

    JS采用IEEE 754标准定义的64位浮点格式表示数字。

    • 注意:JS中实际的操作(比如数组索引,位操作符)则是基于32位整数。
    • 注意:在任何数字直接量前添加负号可以得到它的负值,但负号是一元求反运算符,并不是数字直接量语法的组成部分。
    3.1.1 整型直接量

    可识别十进制、十六进制

    3.1.2浮点型直接量

    整数部分+小数点+小数部分
    指数计数法

    3.1.3 算术运算

    算数运算符
    复杂运算:通过作为Math对象的属性定义的函数和常量来实现。

    • JS中的算术运算在溢出、下溢和被零整除时不会报错。

    • 溢出:数字运算结果超过了Js所能表现的数字上限,结果为Infinity或-Infinity

    • 下溢:运算结果无限接近0,并比JS所能表现的最小值还小。返回
      0,若是负数发生下溢,返回负零。
      被零整除返回Infinity或-Infinity。
      返回NaN:
      0/0
      Infinity/Infinity
      给任意负数作开方运算
      算术运算符和不是数字或无法转换为数字的操作数一起使用。

    • 使用x!=x判断NaN,只有这个值返回true

    • 函数IsNaN()参数是NaN或非数字值返回true

    • 函数IsFinite()参数不是NaN或Infinity、-Infinity返回true

    • 0 = -0 (作为除数时要留心)

    3.1.4 二进制浮点数和四舍五入错误
    var x =0.3-0.2
    var y =0.2-0.1
    x == y             //false
    x = 0.1            //false
    y = 0.1            //true
    

    舍入误差

    3.1.5 日期和时间

    Date()构造函数等

    3.2 文本

    字符串是一组由16位值组成的不可变的有序序列。

    3.2.1 字符串直接量

    在ECMAScript5中字符串可拆分成多行,每行必须用反斜线\结束,另起一行用\n。
    在JS和html中各自使用独立的引号分隔。

    3.2.2 转义字符
    D71E471D937C4AFA8FA863F70C89826C.jpg
    6D75C0EC703C4F1D9DE6789487B0E138.jpg
    3.2.3 字符串的使用

    用+连接字符串
    字符串的多个属性

    3.2.4 模式匹配

    RegExp()函数用来创建表示文本匹配模式的对象。这些模式称为正则表达式。

    3.3 布尔值

    布尔值包含toString()方法。

    3.4 null和undefined

    null是关键字,undefined是预定义的全局变量

    3.5 全局对象

    F8D5EE8D4E8845EABEFF41F1FF5FB4AF.jpg

    3.6 包装对象

    存取字符串、数字或布尔值的属性时创建的临时对象称为包装对象,它只是偶尔用来区分字符串值和字符串对象、数字和数值对象以及布尔值和布尔对象。

    var str = "string" ;
    此时str是基本字符串类型
    str.length = 6 可以这样使用的原因是js生成了值和str一样的临时对象,操作完成后临时对象被删除。
    尝试给str增加一个方法:
    str.t = 3
    查看值:str.t = undefined 临时对象被删除

    3.7 不可变的原始值和可变的对象引用

    原始值(string、number、boolean、null和undefined)与对象有着根本的区别。原始值不可更改!
    通常将对象称为对象引用(reference type),对象值都是引用

    3.8 类型转换

    2B70D4F6BB634123881949F58C1C0849.jpg
    3.8.1 转换和相等性
    3.8.2 显示类型转换

    Number("3") //3
    String(false) //"false"或使用false.toString()
    Boolean([ ]) //true
    Object(3) //new Number(3)

    • 注意:除了null和undefined之外的任何值都具有toString()方法
    3.8.3 对象转换为原始值

    对象——boolean 全部为true
    对象——string


    E5A2A43AAD0F4D56A7722FE6DEE66DF5.jpg
    A0F9B24ECD964057966CB4AAC424FA2F.jpg

    对象——number

    8CC47E0F91F24C4285CBAFFD3D5D104C.jpg

    3.9 变量声明

    3.10 变量作用域

    3.10.1 函数作用域和声明提前

    函数的作用域是指在函数内声明的所有变量在函数体内始终是可见的。这意味着变量在声明之前甚至已经可用(声明提前)

    3.10.2 作为属性的变量

    JS全局变量是全局对象的属性

    3.10.3 作用域链
    8F448070840445E58B3288B6776D239A.jpg

    相关文章

      网友评论

          本文标题:q第三章 类型、值和变量

          本文链接:https://www.haomeiwen.com/subject/jkrrdttx.html