zoukankan      html  css  js  c++  java
  • 《JavaScript高级程序设计》笔记——第一章到第三章

    2019年,新年伊始,我打算好好重读一下《JavaScript高级程序设计》这本前端必备经典书。每天半小时。

    以下内容摘自《JavaScript高级程序设计》

    2019-2-11

    第一章 —— 第三章笔记

    1.区分大小写

    2.严格模式

    "use strict";

    ECMAScript5引入了严格模式的概念。支持严格模式的浏览器包括:IE10+,Firefox4+,Safari5.1+,Opera12+,Chrome

    3.声明变量

    var message = "hi";
    message = 100; //有效,但不推荐

    4.数据类型

    • 5种简单的数据类型:Undefined,Null,Boolean,Number,String
    • 1种复杂的数据类型:Object

    5.typeof操作符

    typeof可能的返回值

    • undefined——如果这个值未定义
    • boolean——如果这个值是布尔值
    • string——如果这个值是字符串
    • number——如果这个值是数值
    • object——如果这个值是对象或null
    • function——如果这个值是函数

    typeof操作举例:

    var message = 'hello, world';
    alert(typeof message); //'string'
    alert(typeof (message)); //typeof () 第二种写法,返回'string'

    怪异之处:对未初始化的变量执行typeof操作符会返回undefined,而对于未声明的变量执行typeof操作符同样也会返回undefined

    var message; // 这个变量声明之后默认取得了undefined值
    
    // 下面这个变量并没有声明
    // var age;
    
    alert(typeof message); //"undefined"
    alert(typeof age); //"undefined"

    6.null类型:表示一个空指针对象

    var car = null;
    alert(typeof car) //'object'

    如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。

    7.Boolean类型

    • 转型函数 Boolean()
    • 流控制语句(如if语句)自动执行相应的Boolean转换

    8.Number类型

    • 八进制字面值得第一位必须是零
    • 十六进制字面值的前两位必须是0x
    var intNum = 55; //整数
    
    var octalNum1 = 070;  //八进制的56
    var octalNum2 = 079; //无效的八进制数值——解析为79
    var octalNum3 = 08;  //无效的八进制数值——解析为8
    
    var hexNum1 = 0xA; //十六进制的10
    var hexNum2 = 0x1f; //十六进制的31

    9. 和ES6对比一下,看看有什么改变

    以下内容摘自阮一峰《ES6标准入门》第六章 数值的扩展

    从ES5开始,在严格模式中,八进制数值就不再允许使用前缀0表示,ES6进一步明确,要使用前缀0o表示

    ES6提供了二进制和八进制数值的新写法,分别用前缀0b(或0B),0o(或0O)

    0b111110111 === 503
    0o767 === 503

    把数值转为十进制数值的方法:Number()

    举例:

    Number('0b111') //7
    Number('0o10') //8

     10.浮点数值

    由于保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机地将浮点数值转换为整数值。例如:

    var floatNum1 = 1.; //小数点后面没有数字——解析为1
    var floatNum2 = 10.0; //整数——解析为10

    11.科学计数法(e表示法)

    var floatNum = 3.125e7; //3.125乘以10^7 等于31250000

    12.浮点数值计算误差

    console.log(0.1 + 0.2); //0.30000000000000004

    13.浮点数值计算误差检查函数

    ES6在Number对象上新增了一个极小的常量——Number.EPSILON

    function withinErrorMargin (left, right) {
      return Math.abs(left - right) < Number.EPSILON  
    }
    
    withinErrorMargin(0.1 + 0.2, 0.3); //true
    withinErrorMargin(0.2 + 0.2, 0.3); //false
  • 相关阅读:
    mac crontab
    mac 修改MAC代码
    python 二叉树计算器
    python 验证码识别
    scp 上传和下载文件
    centos 开机执行的命令
    centos aws 修改使用密码ssh登录
    python nose测试
    C# linq to xml
    Visual Studio 2015+InstallShield 2015
  • 原文地址:https://www.cnblogs.com/cathy1024/p/10362086.html
Copyright © 2011-2022 走看看