EMCA

EMCA是欧洲计算机协会,js的基本语法是由ECMA组织制定的 基本语法部分 变量声明、基本数据类型 流程控制、方法声明 对象声明、容器声明

  1. // js数据类型
  2. // 基本数据类型
  3. number 数字类型[整数和浮点]
  4. string 字符串类型[字符和字符串]
  5. boolean 布尔值
  6. null 空类型
  7. undefined 未定义
  8. // 复杂数据类型
  9. Object 对象类型
  10. [] 容器数组
  11. // js流程控制
  12. while(true){}
  13. for(var i=0; i<len; i++){}
  14. for(var i in len){}
  15. // 方法声明
  16. function f1()){}
  17. arguments 参数对象
  18. length 参数数量

BOM

Browser Object Model 浏览器对象模型 浏览器API 将浏览器抽象成js中的内置对象:window 通过window对象,调用对应方法就可以对浏览器进行操作控制 例如:弹出框、加载网站、网站跳转

  1. // 指定毫秒后调用
  2. setTimeout("alert('123')", 3000 )
  3. setTimeout(()=>{}, 3000) // 调用函数

DOM

文档API 将html文件抽象成js中的对象document 可以对html中的元素进行操作 document是 window的子类

六种声明变量

  1. var:定义变量
  • 没有块概念,可以跨块访问,不能跨函数访问,
  • 存在变量提升
  1. let:块级作用域
  • let声明的变量在所在的代码块有效
  • let声明前无法使用,声明前使用会报错
  • 不允许重复声明
  1. const:只读常量
  • 声明必须初始化,随后无法修改变量
  • 块作用域内有效
  1. function:函数定义
  • 函数声明:function(){};
  • 函数表达式语法:var 函数名=function(){};
  • Function构造函数:var 函数名=new Function("参数"...,"函数体");
  • 箭头函数:var 函数名=()=>{};只有一个参数或一个构造体可以去括号
  1. class:定义类
  • 面向对象编程语法
  1. import:模块功能,加载模块

    this与that的区别

    this在JavaScript中表示当前对象,而that是一种写法var that=this
    表示将当前this对象复制到that中
    this会随着对象的改变而改变,将this复制下来就不会找不到原来的对象了
    箭头函数()=>{}可能会导致this指向window

    Object

    1. // 给对象定义属性
    2. Object.defineProperty(变量, 属性名,{
    3. value: 属性值,
    4. enumerable: true, // 默认false,是否能遍历
    5. configurable: true, // 默认false, 是否删除或编辑
    6. writable: true, // 默认false,是否能修改
    7. get: function(){return }, // 获取触发
    8. set: function(v){属性名=v}, // 修改触发
    9. })