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
  • 相关阅读:
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    Security and Cryptography in Python
    微信小程序TodoList
    C语言88案例-找出数列中的最大值和最小值
    C语言88案例-使用指针的指针输出字符串
  • 原文地址:https://www.cnblogs.com/cathy1024/p/10362086.html
Copyright © 2011-2022 走看看