原生js

本文最后更新于:2022年4月21日 上午

javascript

js 是一门函数优先的轻量级解释型语言,基于原型编程的动态脚本语言

  1. 函数是一等公民(变量提升,函数可以作为函数的参数,返回值,可以赋值给变量,【函数式编程的条件】
  2. 面向对象编程
  3. 弱类型语言(变量的类型在运行时会变化,强类型语言的变量类型编译时就确定且不会改变
  4. 基于原型(区别于基于类[类和实例],js 中万物皆为[对象]

    基于原型的语言具有所谓原型对象(prototypical object)的概念。原型对象可以作为一个模板,新对象可以从中获得原始的属性。任何对象都可以指定其自身的属性,任何对象都可以作为另一个对象的原型(prototype),从而允许后者共享前者的属性。

BOM(Browser Object Model) 浏览器对象模型

  • navigator 用户信息

    • Navigator.geolocation地理位置
    • NavigatorID.userAgent用户代理信息
  • location 文档位置

    • location.href/hash/search/domain/path/port/protcol
    • location.reload()
    • location.replace()
  • history 窗口浏览器历史

    • history.go()
    • history.back()
    • history.forward()
    • window.go(-1) = window.back() + f5 // 丢失表单

  • screen 屏幕信息

DOM (Document Object Model) 文档对象模型

document.getElementById(id);
document.getElementsByTagName(name);
document.createElement(name);
parentNode.appendChild(node);
element.innerHTML;
//innerHTML 从对象起始位置到终止位置的全部内容(包括html标签
//outerHTML 包括对象自身标签
//innerText innerHTML但不包括html标签,
//textContent 所有文本内容,包括script和style标签内

element.style.left;
element.setAttribute();
element.getAttribute();
element.addEventListener();
window.content;
window.onload;
window.dump();
window.scrollTo();

js严格模式use strict

  1. 无法意外创建全局变量
  2. 静默失败将会被抛出异常(给不可写属性赋值, 给只读属性赋值, 给不可扩展对象的新属性赋值,删除必可删除的属性…etc)
  3. 函数参数名唯一
  4. 禁止使用with
  5. eval()会有自己的作用域
  6. 禁止删除声明变量
  7. 禁止使用.callee.arguments
  8. 保留关键字
  9. 禁止了不在脚本或者函数层面的函数声明
    "use strict";
    if (true) {
      function f() { } // !!! 语法错误
      f();
    }
    
    for (var i = 0; i < 5; i++) {
      function f2() { } // !!! 语法错误
      f2();
    }
    
    function baz() { // 合法
      function eit() { } // 同样合法
    }

原生js
http://yoursite.com/2022/02/24/原生js/
作者
tatekii
发布于
2022年2月24日
许可协议