一、JavaScript的引入方式:
<script>
// 在这里写你的JS代码
</script>
注意:
1、JavaScript中的语句要以分号(;)为结束符
2、JavaScript不区分整型和浮点型,只有一种数字类型。
3、还有一种NaN,表示不是一个数字(Not a Number)。
var a = "ABC";
var b = parseInt(a) // NaN
console.log(typeof b) // 类型是"number"
1.1、常用方法:
方法 | 说明 |
---|---|
.length | 返回长度 |
.trim() | 移除空白 |
.trimLeft() | 移除左边的空白 |
.trimRight() | 移除右边的空白 |
.concat(value, …) | 拼接 |
.indexOf(substring, start) | 子序列位置 |
.substring(from, to) | 根据索引获取子序列 |
.slice(start, end) | 切片 |
.split(delimiter, limit) | 分割 |
二、布尔值:
区别于Python(大写),true和false都是小写。
var a = true;
var b = false;
(空字符串)、0、null、undefined、NaN都是false。
三、查询类型:
typeof "abc" // "string"
typeof null // "object"
typeof true // "boolean"
typeof 123 // "number"
四、splice方法
var a = [10, 20, 30, 40];
a.splice(index,howmany,item1,item2.....)
index:索引位置(该参数是开始插入(或)删除的数组元素的下标)
howmany:增加元素时可以填写为0;
删除元素时,对应的是删除多少元素
item1...:添加的新元素
删除元素:
var a_res = a.splice(1,3)
a_res:[20,30,40] 删除后的返回值
此时数组a的值:[10]
增加元素:
var a_res = a.splice(1,0,11,12,13)
增加后a的值:[10,11,12,13]
五、运算符
比较运算符:> >= < <= != == === !==
==:弱等于--->1=="1" // true
===:强等于--->1==="1" // flase
逻辑运算符:&& || !
&&:与
||:或
!:非
其余运算符不在一一写出
六、流程控制
6.1、if-elkse if-else:
var s = 1;
if (s>1){
console.log("s>1");
}
else if(s<1){
console.log("s<1");
}
else{
console.log("s=1");
}
6.2、for(关于遍历数组中的元素)
var a = [10, 20, 30, 40];
for (var i=0;i<a.length;i++) {
console.log(a[i]);
}
6.3、while(死循环)
var i=0;
while (i<5){
console.log(i)
i++;
}
6.4、三元运算
(javascript)
var a = 1;
var b = 2;
var c = a > b ? a:b
console.log("c的值:", c)
(Python)
a = 1
b = 2
c = a if a>b else b
print("c的值:", c)
七、函数定义:
7.1、基本函数:
function foo(){
console.log("初次学习!")
}
1、其中foo():括号中可带参数,例如-->foo(a,b)
2、若使用返回值,使用 "return".
3、调用函数--->foo()有参数时括号带参数
补充:JS语法不严谨性
函数传参时(无论多或少,就是不会报错)
如果实参的个数多于形参的个数时,传的多余参数不用
如果实参个数小于形参时,后面的参数对应赋值:undefined
7.2、匿名函数:
(javascript)
var sum = function(a,b){return a+b};
console.log("相加的值:", sum(1,3))
(Python)
sum = lambda m,n : m+n # 前面的m,n为参数
print("相加的值:", sum(1,3))
7.3、立即执行函数:
(function (a,b){
return a+b;
})(1,3)
// 可以先写两个小括号,然后在第一个括号中写函数,不需要函数名,
// 第二个括号中输入具体的参数值
扩充:可以使用“箭头 =>”定义函数
var sum = (number1,number2) => number1+number2
相等于||
var sum = function(number1, number2){
return number1 + number2;
}
7.4、arguments 返回参数的个数
console.log(arguments.length)
八、词法分析
JavaScript中在调用函数的那一瞬间,会先进行词法分析。
8.1、词法分析的过程:
当函数调用的前一瞬间,会先形成一个激活对象:Avtive Object(AO),并会分析以下3个方面:
1:函数参数,如果有,则将此参数赋值给AO,且值为undefined。如果没有,则不做任何操作。
2:函数局部变量,如果AO上有同名的值,则不做任何操作。如果没有,则将此变量赋值给AO,并且值为undefined。
3:函数声明,如果AO上有,则会将AO上的对象覆盖。如果没有,则不做任何操作。
// 代码示例:
var age =18;
function func3() {
console.log(age); //结果是 age函数;
console.log("age的类型:",typeof age);
console.log("----------------------");
var age = 22;
console.log(age); // 结果是 age=22;
function age() {
console.log("Hello World!")
}
console.log(age) // 结果是 age=22;
}
func3();
// 1.先分析 给AO赋值
// var age=22;--->AO.age=undefined;
// function age(){console.log("xxx");} ---> AO.age=function(){....};
// 2.真正执行阶段,就去AO上找
// function(){.....}
// 22
// 22
九、对象和方法
JavaScript中,数组中的键(属性)可以不用加引号,但是加上也是可以的,这点和Python有区别
例如:
var s1 = {name:"xxxx",age: 18};
或者 s1 = {"name": "xxxx", "age": 18};
取值:
console.log(s1.name);
console.log(s1["name"]);
循环取值:
for (var i in s1){
console.log(i, s1[i])
}
var p=new Object(); // 创建一个p对象
p.name = “xxxx”;
p.age = 18
console.log§ // {name:“xxxx”, age:18}
9.1、Date对象
var d1 = new Date(); 创建一个d1对象
console.log(d1.toLocaleString()); // "2019/12/22 下午11:16:40"
//getDate() 获取日
//getDay () 获取星期
//getMonth () 获取月(0-11)
//getFullYear () 获取完整年份
//getHours () 获取小时
//getMinutes () 获取分钟
//getSeconds () 获取秒
//getMilliseconds () 获取毫秒
//getTime () 返回累计毫秒数(从1970/1/1午夜)
9.2、JSON对象
(JavaScript)
var str = '{"name": "xxxx", "age": 18}';
// JSON字符串转换成对象
var obj = JSON.parse(str);
console.log(typeof obj)
// 对象转换成JSON字符串
var str1 = JSON.stringify(obj);
console.log(typeof str1)
(Python)
dic = {"name": "xxxx", "age": 18}
print(type(dic)) // <class "dict">
# 字典类型转换成JSON字符串
str1 = json.dumps(dic)
print(type(str1)) // <class "str">
# JSON字符串转换成字典类型
dic1 = json.loads(str1)
print(type(dic1)) // <class "dict">