一、JavaScript简介
-
1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名ScriptEase(客户端执行的语言)。
-
Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言。Sun和Netscape共同完成,后改名叫JavaScript。
-
微软随后模仿在其IE3.0的产品中搭载了一个JavaScript的克隆版叫Jscript。
-
为了统一三家,ECMA(欧洲计算机制造协会)定义了ECMA-262规范.国际标准化组织及国际电工委员会(ISO/IEC)也采纳 ECMAScript 作为标准(ISO/IEC-16262)。从此,Web 浏览器就开始努力(虽然有着不同的程度的成功和失败)将 ECMAScript 作为 JavaScript 实现的基础。
-
ECMA-262 是 JavaScript 标准的官方名称。
-
JavaScript 是脚本语言
-
JavaScript 是一种轻量级的编程语言。
-
JavaScript 是可插入 HTML 页面的编程代码。
-
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
二、JavaScript引入方式
-
在script标签内写代码
-
引入额外的JS文件
三、JavaScript语言规范
-
注释
// 这是单行注释 /* 这是 多行注释 */
-
语法
-
JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头。
-
声明变量使用 var 变量名; 的格式来进行声明
-
JavaScript中的语句要以分号(;)为结束符。
var name = "Alex"; var age = 18;
注意:
变量名是区分大小写的。
推荐使用驼峰式命名规则。
保留字不能用做变量名。
abstract boolean byte char class const debugger double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile
四、JavaScript数据类型
-
动态类型
JavaScript拥有动态类型 var x; // 此时x是undefined var x = 1; // 此时x是数字 var x = "Alex" // 此时x是字符串
-
数字类型
JavaScript不区分整型和浮点型,就只有一种数字类型。 var a = 12.34; var b = 20; var c = 123e5; // 12300000 var d = 123e-5; // 0.00123
-
布尔类型
var a = true; var b = false;
区别于Python,true和false都是小写。 ""(空字符串)、0、null、undefined、NaN都是false。
-
字符串类型
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) 分割 -
数组
类似于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() 排序 /*如果调用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); }
-
null和undefined
-
null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
-
undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。
null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。
-
-
查询类型的方法
typeof "abc" // "string" typeof null // "object" typeof true // "boolean" typeof 123 // "number"
typeof是一个一元运算符(就像++,--,!,- 等一元运算符),不是一个函数,也不是一个语句。
对变量或值调用 typeof 运算符将返回下列值之一:
- undefined - 如果变量是 Undefined 类型的
- boolean - 如果变量是 Boolean 类型的
- number - 如果变量是 Number 类型的
- string - 如果变量是 String 类型的
- object - 如果变量是一种引用类型或 Null 类型的
五、运算符
-
算数运算符
+ - * / % ++ --
-
比较运算符
> >= < <= != == === !==
注意:1 == “1” // true 1 === "1" // false
-
逻辑运算符
&& 与 || 或 ! 非
-
赋值运算符
= += -= *= /=
六、流程控制
-
if-else
var a = 10; if (a > 5){ console.log("yes"); }else { console.log("no"); }
-
if -> else if -> else
var a = 10; if (a > 5){ console.log("a > 5"); }else if (a < 5) { console.log("a < 5"); }else { console.log("a = 5"); }
-
switch
d = 2; switch(d){ case 0: console.log('000000000'); break; case 1: console.log('111111111'); case 2: console.log('222222222'); }
-
for
for(i = 0;i<10;i++){ console.log('---');
} -
while
var i = 0; while (i < 10) { console.log(i); i++; }
-
三元运算
var a = 1; var b = 2; var c = a > b ? a : b