构成:
1.核心 ECMAScript
2.文档对象模型 DOM
3.浏览器对象模型 BOM
基础语法:
1.单行注释 //
2.多行注释 /*
*/
3.语句必须以;结束
4.变量声明关键字 var 变量名 = "值";
js属于动态类型(同一个变量可以存不同数据类型)
5.变量命名规则
$可以做变量名,其余和python一样
区分大小写
推荐用驼峰命名 userName
数字类型 number:
不区分整形浮点型
var n4 = NaN // 表示不是数字类型
字符串 string:
可以用+拼接
.length
.trim() // 移除空白
.trimLeft()
.trimRight()
.charAt(n) // 返回第n个字符
.concat(value) // 拼接
.indexOf(substring,start) // 子序列位置
.toLowerCase()
.toUpperCase()
.split(delimiter,limit) // limit控制返回序列长度
.substring(start,stop) // 根据索引获取子序列
,slice(start,stop) // 切片
相同点:
如果start = stop,返回空字符串
substring():
如果start>srop,二者会被交换
如果参数是负数或不是数字,会被替换为0
slice():
如果start>stop,不会交换
如果是复数,则从末尾往前数
布尔类型 boolean:
var a = true // 小写,区别python
var b = false
"" , 0 , null , undefined , NaN 都是false
数组 : // 类型是object对象
类似python列表
var a = [123,"ABC"]
a[0] // 索引取值
.length
.push() // append
.pop()
.unshift() // 头部插入
.shift() // 头部弹出
.slice(start,end) // 左包含右不包含
.reverse()
.join(seq) // a.join("+") 和python反过来
.concat() // 连接数组
.sort() // 按照首字符大小排序
function sortNumber(a,b){
return a-b
}
a2.sort(sortNumber) // 自行实现真排序
遍历数组元素:
for (var i = 0; i < a1.length; i++) {
console.log(a1[i])
}
null和undefined
值为空 / 值声明了但还未赋值
查询类型 typeof // 不用加括号
null和数组的类型是object
null == undefined // true
null === undefined // false
算数运算符:
+ - * / % ++ -- // n++ 就是 py里的n +=1
比较运算符:
> >= < <= != ==(弱等于) ===(强等于) !==
10 != "10" // true
10 !== "10" // false
逻辑运算符:
&& || ! // 与 或 非
赋值运算符:
= += -= *= /=
n += 3 // n = n+3
流程控制:
if - else:
var a = 10;
if (a > 5){
console.log("yes");
}else {
console.log("no");
}
if-elif-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("...")
}
case子句通常都会加break语句,否则程序会继续执行后续case中的语句
for 循环:
for (var i ; i < 10; i++) {
console.log(i);
}
while循环:
var i = 10;
while (i<10) {
console.log(i);
i++;
}
三元运算:
var a = 1;
var b = 2;
var c = a > b ? a : b;