← 返回文章列表

JavaScript

变量

  • 非ASCII字符: \x41 -> A
  • Unicode字符: \u4e2d -> 中
  • `多行字符串,你懂的`
    '这样可以${name}把变量嵌进去'
  • 神奇特性
    • 变量提升特性:
      var x = 'Hello, ' + y;
      console.log(x);
      var y = 'Bob';
      
    • let声明局部作用域变量
    • 解构赋值
      ({x, y} = { name: '小明', x: 100, y: 200});

高阶函数!

function add(x, y, f) {
    return f(x) + f(y);
}
  • map() //对每一个元素操作
  • reduce() //对(n,n+1)操作()
  • filter() //过滤返回false的函数
  • sort() //最好自己实现
  • generator与yield

正则表达式

  • /开头
  • ()提取Group
  • 由/.exec()提取出数组

JSON

  • json对象转json*(indent=缩进)
    JSON.stringify(value, filter, indent)
  • json转json对象
    JSON.parse('value')返回value的JavaScript对象

面向对象

  • (ES6) g class关键字直接写, 和后面两个是一样的
  • 将xiaoming的原型指向Bird xiaoming.prototype = Bird;
  • 返回一个Bird对象的原型 Object.create(Bird)

操作DOM

选择DOM元素

  1. document.getElementById();
  2. document.getElementsByTagName();
  3. document.getElementsByClassName();
  4. querySelector();
  5. querySelectorAll();

更新DOM

  1. DOM_obj.innerHTML(); 对字符编码来避免XSS攻击
  2. DOM_obj.innerText(); 不返回隐藏元素的文本
  3. DOM_obj.textContent(); 返回所有文本

插入DOM

  1. DOM_obj.appendChild(DOM_obj2); OM_obj2会从网页中删掉

删除DOM

  1. parent.removeChild(parent.children[1]); 删完后children[1]变成children[0]

其他琐碎的科普

  • Number类型统一按浮点数处理, 64位存储 ,整数是按 最大54位 来算最大最小数的,否则会丧失精度 某些操作(如数组索引还有位操作)是按32位处理的
  • 浮点数范围:
    as large as ±1.7976931348623157 × 10的308次方
    as small as ±5 × 10的−324次方
  • 精确整数范围:
    The JavaScript number format allows you to exactly represent all integers between
    −9007199254740992 and 9007199254740992 (即正负2的53次方)