type
status
date
slug
summary
tags
category
icon
password
ES语法规范

一、ECMAScript 脚本程序设计语言

数据类型转换

1.其他类型转化为字符串类型
重点:加号拼接  (隐式转换)
String(变量)
变量.toString()
2.其他类型转化为数字型
parseInt(变量)     字符型转化为数值型,只能为整数,小数点之后全部省略  --120px转化为120,注意开头不能为非数字
parseFloat(变量)     同上作用,但是是浮点型
Number()  强制类型转换
利用算数运算 - * /    --‘12’-0=12    除了加号都是可以转化为数值类型的
3.其他类型转化为布尔类型
Boolean()

函数

函数的声明
1.函数关键字自定义函数
2.函数表达式(匿名函数)
作用域
1.全局变量:1.在全局作用域下使用var声明的变量  2.在函数内部定义的但是没有声明的变量
2.局部变量:2.在局部作用域内声明的变量  2.函数的形参
3.块级作用域:是指有{...}包裹的代码,就是块级作用域,es6之后才有块级作用域

预解析

js引擎运行js代码分为预解析和运行代码这两部分
1.预解析
预解析分为变量预解析(变量提升)和函数预解析(函数提升)
js引擎会把js代码中的var function提升到当前作用域的最前面,但是不会提升赋值操作。所以如果是采用的函数表达式的方式来定义的函数,在定义之前变量名和函数没有关系,会报错

对象

一、创建对象的方式(3种)
对象分为3种:自定义对象、内置对象、浏览器对象
1.利用对象字面量创建对象  { }
写法
⚠️ 注意:用字面量创建一个空的对象之后,如果想要给这个空对象添加属性,要使用[]的形式去添加,例如obj1[uname]='测试名字';
2.利用new Object()创建对象
写法
⚠️ 注意:分号分隔  使用obj调用
3.利用构造函数来创建对象
前面创建对象的方式,一次只能创建一个对象,所以用这个方法来进行对象的批量创建
构造函数:把对象中的一些系统的属性和方法抽象出来,封装到函数里面---构造函数
写法
⚠️ 注意:
  • 构造函数的名字必须大写
  • 构造函数不需要return就可以返回结果
  • 调用构造函数必须使用new关键字
  • 构造函数里使用变量必须使用this关键字
 

二、js中的内置对象

1.Math对象常用方法
2.Date对象常用方法
3.Array对象常用方法
  • 创建数组的方式:
    • 利用字面量的方式创建
    • 利用new Array()去创建数组
4.String对象常用方法

e s 6语法规范

变量的解构赋值

模版字符串

声明字符串  内容中可以直接出现换行符  可以做变量拼接

扩展运算符 ...

将数组转化为逗号分割的参数序列
用途:数组的合并、克隆,将伪数组转化为真正的数组

symbol

symbol.for()与symbol()这两种写法都可以生成新的symbol,区别:前者会被登记到全局环境中供搜索,后者不会

迭代器和生成器

迭代器:
  • 是一个接口,有了这个接口就可以对数据进行遍历操作--使用for of进行遍历,因为里面没有in这样的方法,通过next方法对指针进行操作来实现的调用,所以需要自己去配置如何进行遍历
  • next方法返回一个对象,返回yield后面的语句或者是自变量的值,包含value和done
生成器
  • 是一个函数,用来解决异步编程问题,通过yield分隔符来进行函数的分隔
  • 参数的传递
    • 往生成器函数中传入参数的时候,需要打印传递的参数的话,使用next方法
    • next方法中的参数将会作为上一次yield语句的整体返回结果

promise

原生ajax发送请求,分为四步:
  • 创建一个xhr异步对象 const xhr = XMLHttpRequest();
  • 初始化操作,传入请求方式和请求地址
  • 发送请求
  • 绑定事件,处理响应结果
Promise:
  • 是一个构造函数,用来封装异步操作,并可以获取其成功或失败的结果

Es7 新特性

检测数组中是否包含某个元素:
  • 新:includes--直接返回布尔值
    • 判断字符串中是否包含其他字符串 : books = '字符串里面包含书籍这两个字' books.includesWith("书籍");//true
  • indexof--存在的返回的是索引值,不存在返回-1,但是NaN查找不出来,因为NaN!==NaN

Es8 新特性

notion image
相关文章
JS 基础记录React memo