JavaScript简单介绍
一个完整的JavaScript是有三个不同的部分组成的:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)。
ECMAScript描述了JavaScript语言本身相关的内容。
JavaScript是脚本语言,是一种轻量级语言,可插入html页面的编程代码,可由浏览器直接执行。
JavaScript引入
<script>
// 在这里写你的JS代码
</script>
引入js文件
<script src="myscript.js"></script>
注释和结束符
单行:// 多行:/* */ 结束符:;
JavaScript基础
变量声明
1,变量可以使用_,数字,字母,$组成不能以数字开头。
声明变量 var 变量名;的格式
var name="len"
注意:
变量名是区分大小写的。
推荐使用驼峰式命名规则。
保留字不能用做变量名。
数据类型
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
特殊的NaN:表示不是一个数字,非数字值的特殊值,用于指示某个值不是数字。
字符串
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) | 分割 |
substring和slice的区别:
ubstirng()的特点:
如果 start > stop ,start和stop将被交换
如果参数是负数或者不是数字,将会被0替换
silce()的特点:
如果 start > stop 不会交换两者
如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)
如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)
布尔类型
true和false都是小写。
""(空字符串)、0、null、undefined、NaN都是false。
数组
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() | 排序 |
null和undefined
1,null表示值是空,一般需要指定或清空一个变量时才会用,如name=null
2,undefined表示当声明一个变量但未初始化时,该变量的默认值时undefined。函数无明确返回值时,返回的也是undefined。
null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。
类型查询
typeof "abc" // "string"
typeof null // "object"
typeof true // "boolean"
typeof 123 // "number"
typeof是一个一元运算符(就像++,--,!,- 等一元运算符),不是一个函数,也不是一个语句。
运算符
算术运算符
+ - * / % ++ :n++ 等于n+=1 -- :n-- 等于n-=1
比较运算符
> >= < <= != == :弱等于,只比较值 === :强等于,既比较值有比较类型 !==:强不等于
逻辑运算符
&&:and ||:or !:not
赋值运算符
= += -= *= /=
流程控制
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
var day = new Date().getDay(); switch (day) { case 0: console.log("Sunday"); break; case 1: console.log("Monday"); break; default: console.log("...") }
switch的case字句通常都会加上break语句,否则程序会继续执行后续case中的语句。
for
for (var i=0;i<10;i++) { console.log(a[i]); }
while
var i = 0;
while (i < 10) {
console.log(i);
i++;
}
三元运算
var a = 1; var b = 2; var c = a > b ? a : b