变量声明
1 JavaScript的变量名可以使用_,数字,字母,$ 组成 不能以数字开头
2 声明变量使用var变量名的格式来进行声明
var a = 10;
声明变量时可以先不赋值
var a; 此时a的值为undefined
javascript数据类型
JavaScript 拥有动态类型(python也是动态的)
var x;
//此时x是underfined 静态语言比如c 创建变量的时候 要指定变量的类型 python3.6也出现了类型的注解的新特性 def func
字符串的常用方法
.length 属性 查看字符串的长度
示例
1 .length属性,查看字符串长度
示例
var a = 'hello';
a.length; // 5
2 .trim() 移除空白
示例
var a = ' hello ';
a.trim(); //"hello"
3 .trimLeft() .trimRight()
4 .charAt(n) 返回索引为n的那个字符
5 .concat() 字符串拼接
示例
var a = 'hello';
var b = 'world';
a.concat(b) //"helloworld"
6 .indexOf() 通过元素找索引
示例
a
"hello"
a.indexOf('e')
start参数,索引起始位置
a.indexOf('l',3)
找不到返回-1
a.indexOf('e',3) -1
7 .slice() 切片
var a = 'hello';
a.slice(2,4) 顾头不钴锭
8 .toLowerCase() #全部变小写
.toUpperCase() #全部变大写
示例:
var b = 'HH';
b.toLowerCase();
9 .split 字符串分隔,第二个参数是返回多少个数据
示例
var a = "hello"
a.split('e') //(2) ["h", "llo"]
a.split('e',1) //["h"]
布尔值
var a = true;
var b = false;""(空字符串)、0、null、undefined、NaN都是false。
null和undefined
null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时, 返回的也是undefined。
null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。
对象类型object
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义对象。
比如声明一个字符串对象
var a = new String('bb')
复杂数据类型或者引用数据类型
数组array
创建数组:
var a = [11,22,33];
var b = new Array([22,33])
typeof a; //object类型
数组常用方法和属性
1 索引取值
var a = [123, "ABC"];
console.log(a[1]); // 输出"ABC"2 .length a.length //2
3. .push() 尾部追加 .pop()尾部删除
示例
var a = [11,22,33]
a.push('123'); //[11, 22, 33, "123"]
a.pop(); //"123"
a -- [11, 22, 33]
4 .unshift(ele)头部追加 .shift()头部删除
var a = [11,22,33]a //(3) [11, 22, 33]
a.unshift('aa');
a
(4) ["aa", 11, 22, 33]
a.shift();
"aa"
a
(3) [11, 22, 33]5 .sort排序
var a = [11,4,84,73];a.sort()
(4) [11, 4, 73, 84]
function sortNumber(a,b){
return a - b;
}a.sort(sortNumber)
(4) [4, 11, 73, 84]
function sortNumber(a,b){
return b - a
}
a.sort(sortNumber)
(4) [84, 73, 11, 4]
解释:
如果想按照其他标准进行排序,就需要提供比较函数,也就是自己提供一个函数提供排序规则,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
若 a 等于 b,则返回 0。
若 a 大于 b,则返回一个大于 0 的值。6 .splice() 删除元素 var a = [84, 73, 11, 4]; a.splice(1,2,'aa','bb','cc');
自定义对象{}
var a = {"name": "mike", "age": 18};
var d = {'name':'amy',age:18}; 键可以不加引号
console.log(a.name);
console.log(a["age"]);
for循环遍历自定义对象
var a = {"name": "mike", "age": 18};
for (var i in a){
console.log(i, a[i]);
}
运算符
算术运算符
+ - * / % ++ -- i++,是i自加1,i--是i自减1 i++的这个加1操作优先级低,先执行逻辑,然后再自加1,而++i,这个加1操作优先级高,先自加1,然后再执行代码后面的逻辑
比较运算符
> >= < <= != == === !== ==是弱等于(不比较数据类型) ===强等于 强等于会比较数据类型
逻辑运算符
&& || ! #and,or,非(取反)!null返回true
赋值运算符
= += -= *= /= #n += 1其实就是n = n + 1
流程控制
if -else
var a = 10;
if (a===10){
console.log('yes');
}else{
console.log('no');
}
Switch切换
var a = 10;
undefined
switch (a){ //switch (a++){}
case 9:
console.log('999');
break;
case 10:
console.log('101010');
break;
case 11:
console.log('111111');
break;
}
加上default示例:
var a = 20;
switch (a){
case 9:
console.log('999');
break;
case 10:
console.log('101010');
break;
case 11:
console.log('111111');
break;
default : //上面的条件都不成立的时候,走default
console.log('啥也不对!!')
}
for循环
for (var i=0;i<10;i++) {
console.log(i);
}
循环数组:
var l2 = ['aa','bb','dd','cc']
方式1
for (var i in l2){
console.log(i,l2[i]);
}
方式2
for (var i=0;i<l2.length;i++){
console.log(i,l2[i])
}
循环自定义对象:
var d = {aa:'xxx',bb:'ss',name:'小明'};
for (var i in d){
console.log(i,d[i],d.i) #注意循环自定义对象的时候,打印键对应的值,只能是对象[键]来取值,不能使用对象.键来取值。
}
while循环
var i = 0;
while (i < 10) {
console.log(i);
i++;
}
三元运算符
var a = 1;
var b = 2;
var c = a > b ? a : b //如果a>b这个条件成立,就把冒号前面的值给c,否则把冒号后面的值给c //python中的:a = x if x>y else y