js简介
简介
ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现。
ES6就是指ECMAScript 6,添加类和模块。
尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:
- 核心(ECMAScript)
- 文档对象模型(DOM) Document object model (整合js,css,html)
- 浏览器对象模型(BOM) Broswer object model(整合js和浏览器)
与java没有任何关系,因为当时java很火而已,借个光。
但是很多风格模仿了java,例如注释,例如分号结尾等,还有部分的语法。
套路都是变量、数据类型、运算符、条件、循环等。
再给一个内置的类,然后三方插件,类库等。
变量
声明变量和常量需要加关键字let或const,var声明变量是语言的设计缺陷,变量没有作用域!
es6新增const声明常量,声明时就要赋值,且不能改变。
基本数据类型
js拥有动态数据类型,类python
一:数字Number类型
不区分整数和小数,
二非数字NaN
一般出现在返回值,或者数字和字符串相加等不支持的计算结果。
三字符串String
提供了大量的方法需要记忆。
| 方法 | 说明 |
| .length | 返回长度 |
| .trim() | 移除空白 |
| .trimLeft() | 移除左边的空白 |
| .trimRight() | 移除右边的空白 |
| .charAt(n) | 返回第n个字符 |
| .concat(value, ...) | 拼接 |
| .indexOf(substring, start) | 子序列位置 |
| .substring(from, to) | 根据索引获取子序列 |
| .slice(start, end) | 切片 |
| .toLowerCase() | 小写 |
| .toUpperCase() | 大写 |
| .split(delimiter, limit) | 分割 |
ES6中引入了模板字符串。模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当做普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
四布尔值Boolean
区别于Python,true和false都是小写。
五:空 null和undefined
""(空字符串)、0、null、undefined、NaN都是false。
null是赋值了但是又没了,一般在需要指定或清空一个变量时才会使用,如 name=null;
undefined是压根就没赋值。还有就是函数无明确的返回值时,返回的也是undefined。
引用数据类型
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。
JavaScript 提供多个内建对象,比如 String、Date、Array 等等。
对象只是带有属性和方法的特殊数据类型。
数组
数组对象的作用是:使用单独的变量名来存储一系列的值。类似于Python中的列表。
常用方法:
| 方法 | 说明 |
| .length | 数组的大小 |
| .push(ele) | 尾部追加元素 |
| .pop() | 获取尾部的元素 |
| .unshift(ele) | 头部插入元素 |
| .shift() | 头部移除元素 |
| .slice(start, end) | 切片 |
| .reverse() | 反转 |
| .join(seq) | 将数组元素连接成字符串 |
| .concat(val, ...) | 连接数组 |
| .sort() | 排序 |
| .forEach() | 将数组的每个元素传递给回调函数 |
| .splice() | 删除元素,并向数组添加新元素。 |
| .map() |
返回一个数组元素调用函数处理后的值的新数组 |

浙公网安备 33010602011771号