一, JavaScript 的历史
略
二, ECMAScript
注: ES6 就是指 ECMAScript 6.
尽管 ECMAScript 是一个重要的标准, 但它并不是 JavaScript 唯一的部分, 当然, 也不是唯一被标准化的部分. 实际上, 一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:
核心(ECMAScript)
文档对象模型(DOM) Document object model (整合 js,CSS,html)
浏览器对象模型(BOM) Broswer object model(整合 js 和浏览器)
简单地说, ECMAScript 描述了 JavaScript 语言本身的相关内容.
JavaScript 是脚本语言
JavaScript 是一种轻量级的编程语言.
JavaScript 是可插入 HTML 页面的编程代码.
JavaScript 插入 HTML 页面后, 可由所有的现代浏览器执行.
三, JavaScript 引入方式
1, 在 HTML 文件的 Script 标签内写代码
- <script>
- // 在这里写你的 JS 代码
- </script>
2,HTML 文件引入额外的 JS 文件
<script src="myscript.js"></script>
四, JavaScript 语言规范
1, 注释(注释是代码之母)
- // 这是单行注释
- /*
- 这是多行注释
- */
2, 结束符
JavaScript 中的语句要以分号 (;) 为结束符.
五, JavaScript 语言基础
1, 变量声明
JavaScript 的变量名可以使用_, 数字, 字母,$ 组成, 不能以数字开头.
声明变量使用 var 变量名; 的格式来进行声明
- var name = "Alex";
- var age = 18;
注意:
变量名是区分大小写的.
推荐使用驼峰式命名规则.
保留字不能用做变量名.
六, JavaScript 数据类型
1,JavaScript 拥有动态类型
- var x; // 此时 x 是 undefined
- var x = 1; // 此时 x 是数字
- var x = "Alex" // 此时 x 是字符串
2, 数字类型
JavaScript 不区分整型和浮点型, 就只有一种数字类型.
- var a = 12.34;
- var b = 20;
- var c = 123e5; // 12300000
- var d = 123e-5; // 0.00123
3, 还有一种 NaN, 表示不是一个数字(Not a Number).
常用方法:
- parseInt("123") // 返回 123
- parseInt("ABC") // 返回 NaN,NaN 属性是代表非数字值的特殊值. 该属性用于指示某个值不是数字.
- parseFloat("123.456") // 返回 123.456
4, 字符串
- var a = "Hello"
- var b = "world;
- var c = a + b;
- console.log(c); // 得到 Helloworld
常用方法:
方法 | 说明 |
.length | 返回长度 |
.trim() | 移除空白 |
.trimLeft() | 移除左边的空白 |
.trimRight() | 移除右边的空白 |
.charAt(n) | 返回第 n 个字符 |
.concat(value, ...) | 拼接 |
.indexOf(substring, start) | 子序列位置 |
.substring(from, to) | 根据索引获取子序列 |
.slice(start, end) | 切片 |
.toLowerCase() | 小写 |
.toUpperCase() | 大写 |
.split(delimiter, limit) | 分割 |
拼接字符串一般使用 "+"
补充: slice 和 ubstirng 的区别:
string.slice(start, stop)和 string.substring(start, stop):
两者的相同点:
如果 start 等于 end, 返回空字符串
如果 stop 参数省略, 则取到字符串末
如果某个参数超过 string 的长度, 这个参数会被替换为 string 的长度
substirng()的特点:
如果 start> stop ,start 和 stop 将被交换
如果参数是负数或者不是数字, 将会被 0 替换
silce()的特点:
如果 start> stop 不会交换两者
如果 start 小于 0, 则切割从字符串末尾往前数的第 abs(start)个的字符开始(包括该位置的字符)
如果 stop 小于 0, 则切割在从字符串末尾往前数的第 abs(stop)个字符结束(不包含该位置字符)
5, 布尔类型 区别于 Python,true 和 false 都是小写.
- var a = true;
- var b = false;
""(空字符串),0,null,undefined,NaN 都是 false.
6, 数组 类似于 Python 中的列表.
- var a = [123, "ABC"];
- console.log(a[1]); // 输出 "ABC"
常用方法:
方法 | 说明 |
.length | 数组的大小 |
.push(ele) | 尾部追加元素 |
.pop() | 获取尾部的元素 |
.unshift(ele) | 头部插入元素 |
.shift() | 头部移除元素 |
.slice(start, end) | 切片 |
.reverse() | 反转 |
.join(seq) | 将数组元素连接成字符串 |
.concat(val, ...) | 连接数组 |
.sort() | 排序 < br ztid="244" ow="0" oh="0"> |
补充: 关于 sort 的问题:
如果调用 sort 方法时没有传入参数, 将按字母顺序对数组中的元素进行排序, 说得更精确点, 是按照字符编码的顺序进行排序. 要实现这一点, 首先应把数组的元素都转换成字符串(如有必要), 以便进行比较.
如果想按照其他标准进行排序, 就需要提供比较函数, 该函数要比较两个值, 然后返回一个用于说明这两个值的相对顺序的数字. 比较函数应该具有两个参数 a 和 b, 其返回值如下:
若 a 小于 b, 在排序后的数组中 a 应该出现在 b 之前, 则返回一个小于 0 的值.
若 a 等于 b, 则返回 0.
若 a 大于 b, 则返回一个大于 0 的值.
- // 根据上面的规则自行实现一个排序函数:
- function sortNumber(a,b) {
- return a - b
- }
- // 调用 sort 方法时将定义好的排序函数传入即可.
- stringObj.sort(sortNumber)
可以使用以下方式遍历数组中的元素:
- var a = [10, 20, 30, 40];
- for (var i=0;i<a.length;i++) {
- console.log(i);
- }
7,null 和 undefined
null 表示值是空, 一般在需要指定或清空一个变量时才会使用, 如 name=null;
undefined 表示当声明一个变量但未初始化时, 该变量的默认值是 undefined. 还有就是函数无明确的返回值时, 返回的也是 undefined.
null 表示变量的值是空, undefined 则表示只声明了变量, 但还没有赋值.
8, 类型查询
typeof 是一个一元运算符(就像 ++,--,!,- 等一元运算符), 不是一个函数, 也不是一个语句.
- typeof "abc" // "string"
- typeof null // "object"
- typeof true // "boolean"
- typeof 123 // "number"
对变量或值调用 typeof 运算符将返回下列值之一:
undefined - 如果变量是 Undefined 类型的
boolean - 如果变量是 Boolean 类型的
number - 如果变量是 Number 类型的
string - 如果变量是 String 类型的
object - 如果变量是一种引用类型或 Null 类型的
来源: http://www.bubuko.com/infodetail-2593849.html