js学习笔记

  1. ECMAScript是一种语言标准,而JavaScript是网景公司对ECMAScript标准的一种实现。
  2. 过多的嵌套会大大增加代码的复杂度。通常把部分代码抽出来,作为函数来调用,这样可以减少代码的复杂度。
  3. JavaScript不区分整数和浮点数,统一用Number表示。
  4. 由于JavaScript这个设计缺陷,尽量不要使用==比较,最好使用===比较。
  5. 唯一能判断NaN的方法是通过isNaN()函数:
    isNaN(NaN); // true
  6. 注意浮点数的相等比较:
    1 / 3 === (1 - 2 / 3); // false

    浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数。要比较两个浮点数是否相等,只能计算它们之差的绝对值,看是否小于某个阈值:

    Math.abs(1 / 3 - (1 - 2 / 3)) < 0.0000001; // true
  7. JavaScript的数组可以包括任意数据类型。例如:

    [1, 2, 3.14, 'Hello', null, true];
  8. 启用strict模式的方法是在JavaScript代码的第一行写上:

    'use strict';

    如果一个变量没有通过var申明就被使用,那么该变量就自动被申明为全局变量,在strict模式下运行的JavaScript代码,强制通过var申明变量,未使用var申明变量就使用的,将导致运行错误。

  9. 字符串内部既包含'又包含",可以用转义字符\来标识,比如:

    'I\'m \"OK\"!';
  10. 以前,把多个字符串连接起来,可以用+号连接

    1

    2

    3

    4

    var name ="olive";

    var age= 26;

    var message='hello,my name is '+name+',I\'m '+age+' years old';

    alert(message);

但要是有很多变量需要连接,用+号就比较麻烦了。ES6新增了一种字符串(模板字符串【和多行字符串表示一样】)连接方式:

1

2

3

4

var name1 ="Mike";

var age1=20;

var message1=`hello,${name1},your age is ${age1}`;//同理,这里的两个点是键盘上数字键1左边的按键,而不是单引号哦

alert(message1);

  1. concat()方法并没有修改当前Array,而是返回了一个新的Array。而push会修改当前数组。slice()就是对应String的substring()版本,它截取Array的部分元素,然后返回一个新的Array;splice()方法是修改Array的“万能方法”,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素,改变数组本身。
  2. for ... of循环和for ... in循环有何区别?

    for ... in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。

    当我们手动给Array对象添加了额外的属性后,for ... in循环将带来意想不到的意外效果:

    var a = ['A', 'B', 'C'];
    a.name = 'Hello';
    for (var x in a) {
        console.log(x); // '0', '1', '2', 'name'
    }
    

    for ... in循环将把name包括在内,但Arraylength属性却不包括在内。

    for ... of循环则完全修复了这些问题,它只循环集合本身的元素:

    var a = ['A', 'B', 'C'];
    a.name = 'Hello';
    for (var x of a) {
        console.log(x); // 'A', 'B', 'C'
    }
  3. 6
  4. 7
  5. 8
  6. 9
  7. 9
  8. 0
  9.  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值