zoukankan      html  css  js  c++  java
  • JavaScript笔记2

    1.浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。
    要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值(某个可接受的范围):
    Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true

    2.null和undefined
    null表示一个“空”的值,它和0以及空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示“空”。
    在JavaScript中,还有一个和null类似的undefined,它表示“未定义”。JavaScript的设计者希望用null表示一个空的值,而undefined表示值未定义。
    事实证明,这并没有什么卵用,区分两者的意义不大。大多数情况下,我们都应该用null。undefined仅仅在判断函数参数是否传递的情况下有用。

    3.strict模式
    JavaScript在设计之初,为了方便初学者学习,并不强制要求用var申明变量。
    这个设计错误带来了严重的后果:如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量:
    i = 10; // i现在是全局变量
    在同一个页面的不同的JavaScript文件中,如果都不用var申明,恰好都使用了变量i,将造成变量i互相影响,产生难以调试的错误结果。
    使用var申明的变量则不是全局变量,它的范围被限制在该变量被申明的函数体内,同名变量在不同的函数体内互不冲突。
    为了修补JavaScript这一严重设计缺陷,ECMA在后续规范中推出了strict模式,
    在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。
    启用strict模式的方法是在JavaScript代码的第一行写上:
    'use strict';
    这是一个字符串,不支持strict模式的浏览器会把它当做一个字符串语句执行,支持strict模式的浏览器将开启strict模式运行JavaScript。

    来测试一下你的浏览器是否能支持strict模式:
    'use strict';
    // 如果浏览器支持strict模式,
    // 下面的代码将报ReferenceError错误:
    abc = 'Hello, world';
    alert(abc);

    4.多行字符串--反引号
    由于多行字符串用 写起来比较费事,所以最新的ES6标准新增了一种多行字符串的表示方法,用反引号 ` ... `(esc下方的键) 表示:
    `这是一个
    多行
    字符串`;

    5.模板字符串--${变量名}
    ES6新增了一种模板字符串,表示方法和上面的多行字符串一样,但是它会自动替换字符串中的变量:
    var name = '小明';
    var age = 20;
    var message = `你好, ${name}, 你今年${age}岁了!`;
    alert(message);

    6.JavaScript把null、undefined、0、NaN和空字符串''视为false,其他值一概视为true.

    7.swtich为javascript关键字,不可作为函数名使用

  • 相关阅读:
    linux笔记
    restful课程凌杂知识点
    Django中间件执行流程
    restful知识点之二restframework视图
    restful知识点之一CBV
    可变长参数
    函数的重点内容
    文件的高级应用及修改的两种方式
    文件的三种打开方式及with管理文件上下文
    字符编码
  • 原文地址:https://www.cnblogs.com/huguangqin/p/7188401.html
Copyright © 2011-2022 走看看