原生js
本文最后更新于:2022年4月21日 上午
javascript
js 是一门函数优先的轻量级解释型语言,基于原型编程的动态脚本语言
- 函数是一等公民(变量提升,函数可以作为函数的参数,返回值,可以赋值给变量,【函数式编程的条件】
- 面向对象编程
- 弱类型语言(变量的类型在运行时会变化,强类型语言的变量类型编译时就确定且不会改变
- 基于原型(区别于基于类[类和实例],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
- 无法意外创建全局变量
- 静默失败将会被抛出异常(给不可写属性赋值, 给只读属性赋值, 给不可扩展对象的新属性赋值,删除必可删除的属性…etc)
- 函数参数名唯一
- 禁止使用
with
eval()
会有自己的作用域- 禁止删除声明变量
- 禁止使用
.callee
和.arguments
- 保留关键字
- 禁止了不在脚本或者函数层面的函数声明
"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/