JavaScript
JavaScript简介
1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名ScriptEase(客户端执行语言).
Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本语言.Sun和Netscape共同完成,后改名叫JavaScript.
JavaScript引入方式
Script标签内写代码
<script>
//在这里写代码
</script>
引入额外的JS文件
<script src="myscript.js"></script>
JavaScript语言规范
注释
// 这是单行注释
/*
这是多行注释
*/
结束符
JavaScript中的语句要以分号 ; 为结束符.
JavaScript语言基础
变量声明
JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头(一般用驼峰命名法).
声明变量使用 var 变量名; 的格式来进行声明
var name = "eve";
var age = 999;
JavaScript数据类型
JavaScript拥有动态类型
var x; // 定义一个变量没有赋值时 默认是 undefined
var x = 1; //数字类型 值是1
var x = "eve" //字符串类型
数字类型
JavaScript不区分整型和浮点型,就只有一种数字类型.
var a = 12.34;
var b = 20;
var c = 123e5;
var d = 123e-5;
还有一种NaN,表示不是一个数字(Not a Number).
常用方法
parseInt("123") // 返回123
parseInt("abc") // 返回NaN 表示非数字的特殊值,该属性用于指示某个值不是数字
parseFloat("123.456") //返回123.456
字符串
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 true和false都是小写.
var a = true;
var b = false;
空字符串 0 null undefined NaN都是false.
数组
类似于python中的列表
var a = [123,"ABC"];
console.log(a[1]);
常用方法
方法 | 说明 |
.length | 数组的大小 |
.push(ele) | 尾部追加元素 |
.pop() | 获取尾部的元素 |
.unshift(ele) | 头部插入元素 |
.shift() | 头部移除元素 |
.slice(start, end) | 切片 |
.reverse() | 反转 |
.join(seq) | 将数组元素连接成字符串 |
.concat(val, ...) | 连接数组 |
.sort() | 排序 |
遍历数组中的元素
var a = [10,20,30,40,50];
for (var i = 0;i < a.length;i++) {
console.log(i);
}
null 和 undefined
null表示值是空,一半在需要指定或清空一个变量时才会使用
undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined.还有九十函数五明确的返回值时,返回的也是undefined.
null表示变量的值是空,undefined则表示只声明了变量,但是还没有赋值.
类型查询
typeof "abc" //string
typeof null //object
typeof true //boolean
typeof 123 //number
typeof是一个一元运算符(就像++,--,!,-等一元运算符),不是一个函数,也不是一个语句
对变量或值调用typeof运算符将返回下列值之一:
undefined - 如果变量是Undefined类型的
undefined - 如果变量是Boolean类型的
number - 如果变量是Number类型的
string - 如果变量是String类型的
object - 如果变量是一种引用类型或Null类型的
运算符
算数运算符
+ - * / % ++ --
比较运算符
> >= < <= != == === !==
逻辑运算符
&& || !
赋值运算符
= += -= *= /=
流程控制
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(i);
}
while
var i = 0;
while (i < 10) {
console.log(i);
i++;
}
三元运算
var a = 1;
var b = 2;
var c = a > b ? a : b