EMCA
EMCA是欧洲计算机协会,js的基本语法是由ECMA组织制定的 基本语法部分 变量声明、基本数据类型 流程控制、方法声明 对象声明、容器声明
// js数据类型
// 基本数据类型
number 数字类型[整数和浮点]
string 字符串类型[字符和字符串]
boolean 布尔值
null 空类型
undefined 未定义
// 复杂数据类型
Object 对象类型
[] 容器数组
// js流程控制
while(true){}
for(var i=0; i<len; i++){}
for(var i in len){}
// 方法声明
function f1()){}
arguments 参数对象
length 参数数量
BOM
Browser Object Model 浏览器对象模型 浏览器API 将浏览器抽象成js中的内置对象:window 通过window对象,调用对应方法就可以对浏览器进行操作控制 例如:弹出框、加载网站、网站跳转
// 指定毫秒后调用
setTimeout("alert('123')", 3000 )
setTimeout(()=>{}, 3000) // 调用函数
DOM
文档API 将html文件抽象成js中的对象document 可以对html中的元素进行操作 document是 window的子类
六种声明变量
- var:定义变量
- 没有块概念,可以跨块访问,不能跨函数访问,
- 存在变量提升
- let:块级作用域
- let声明的变量在所在的代码块有效
- let声明前无法使用,声明前使用会报错
- 不允许重复声明
- const:只读常量
- 声明必须初始化,随后无法修改变量
- 块作用域内有效
- function:函数定义
- 函数声明:
function(){};
- 函数表达式语法:
var 函数名=function(){};
- Function构造函数:
var 函数名=new Function("参数"...,"函数体");
- 箭头函数:
var 函数名=()=>{};
只有一个参数或一个构造体可以去括号
- class:定义类
- 面向对象编程语法
- import:模块功能,加载模块
this与that的区别
this在JavaScript中表示当前对象,而that是一种写法var that=this
表示将当前this对象复制到that中
this会随着对象的改变而改变,将this复制下来就不会找不到原来的对象了
箭头函数()=>{}
可能会导致this指向windowObject
// 给对象定义属性
Object.defineProperty(变量, 属性名,{
value: 属性值,
enumerable: true, // 默认false,是否能遍历
configurable: true, // 默认false, 是否删除或编辑
writable: true, // 默认false,是否能修改
get: function(){return }, // 获取触发
set: function(v){属性名=v}, // 修改触发
})