1. 逻辑运算符(重)
短路运算(逻辑中断)
- 逻辑与
语法:表达式 1 && 表达式2
- 如果第一个表达式的值为真,则返回表达式2
- 如果第一个表达式的值为假,则返回表达式1
示例:
console.log( 123 && 456 ); // 456
console.log( 0 && 456 ); // 0
console.log( 123 && 456&& 789 ); // 789
- 逻辑或
语法: 表达式1 || 表达式2
- 如果第一个表达式的值为真,则返回表达式1
- 如果第一个表达式的值为假,则返回表达式2
示例:
console.log( 123 || 456 ); // 123
console.log( 0 || 456 ); // 456
console.log( 123 || 456 || 789 ); // 123
三元表达式
- 语法结构
表达式1 ? 表达式2 : 表达式3;
- 执行思路
1.如果表达式1为 true ,则返回表达式2的值,如果表达式1为 false,则返回表达式3的值
2.简单理解: 就类似于 if else (双分支) 的简写
2. 数据类型转换
转换字符串
方式 | 说明 | 案例 |
---|---|---|
toString() | 转成字符串 | var num=1;alert(num.toString()); |
String()强制转换 | 转成字符串 | var num=1;alert(num.String(num)); |
加号拼接字符串 | 和字符串拼接的结果都是字符串 | var num=1;alert(num+”我是字符串”); /* 常用*/ |
转换为数字型
方式 | 说明 | 案例 |
---|---|---|
parseInt(string)函数 | 将string类型转成整数数值型 | parselnt(’78’) |
parseFloat函数 | 将string类型转成浮点数数值类型 | parseFloat(‘78.21’) |
Number强制转换函数 | 将string类型转成数值型 | Number(’12’) |
js 隐式转换(- * /) | 利用算术运算隐式转换为数值型 | ’12’- 0 |
3. 数组
获取数组中的元素
// 定义数组
var arrStus = [1,2,3];
// 获取数组中的第2个元素
alert(arrStus[1]);
注意:如果访问时数组没有和索引值对应的元素,则得到的值是undefined
4. 函数
break ,continue ,return 的区别
- break :结束当前的循环体(如 for、while)
- continue :跳出本次循环,继续执行下次循环(如 for、while)
- return :不仅可以退出循环,还能够返回 return 语句中的值,同时还可以结束当前的函数体内的代码,在函数内可以结束当前函数体代码
arguments伪数组的使用
- 具有 length 属性
- 按索引方式储存数据
- 不具有数组的 push , pop 等方法
注意:在函数内部使用该对象,用此对象获取函数调用时传的实参。
5. 创建对象的三种方式
利用字面量创建对象
//使用字面量创建对象,结尾用逗号分隔
var pet = {
name: '可可',
age: 2,
sex: '女',
skill: function () {
alert('我的技能是撒娇')
}
}
console.log(pet.name);
console.log(pet['age']);
pet.skill();//函数的调用,不用使用log,直接对象调用后面加上小括号
利用 new Object 创建对象
//利用 new Object 创建对象
var Andy = new Object()
Andy.name = '安迪';
Andy.age = 19;
Andy.sex = '男'
Andy.skill = function () {
alert('我的技能也是撒娇啊')
}
console.log(Andy.name);
console.log(Andy['sex'])
Andy.skill()
利用构造函数创建对象
// 利用构造函数创建对象
function Message(name, age, sex,) {
this.name = name;
this.age = age;
this.sex = sex;
this.hobby = function (ball) {
alert('我的爱好是' + ball)
}
}
var Yyl = new Message('yyl', '19', '男',)
console.log(Yyl);
console.log(Yyl.name);
console.log(Yyl['age']);
console.log(Yyl.sex);
Yyl.hobby('乒乓球')
6. 遍历对象的方法
//k 是属性名 object 对象名
// for ... in ... 循环这个数组对象 里面的变量
for (var k in object) {
console.log(k); //输出对象里面的属性名
console.log(object[k]);// 输出对象里面的属性值(变量)
}
7. 数组元素的操作方法
检测是否为数组
-
instanceof
可以判断一个对象是否是某个构造函数的实例
var arr = [1, 23];
var obj = {};
console.log(arr instanceof Array); // true
console.log(obj instanceof Array); // false
-
Array.isArray()
用于判断一个对象是否为数组,isArray()
是 HTML5 中提供的方法
var arr = [1, 23];
var obj = {};
console.log(Array.isArray(arr)); // true
console.log(Array.isArray(obj)); // false
添加删除数组元素的方法
方法名 | 说明 | 返回值 |
---|---|---|
push(参数1……) | 末尾添加一个或多个元素,注意修改原数组 | 并返回新的长度 |
pop() | 删除数组最后一个元素,把数组长度减1无参数,修改原数组 | 返回它删除的元素的值 |
unshift(参数1……) | 向数组的开头添加一个或更多元素,注意修改原数组 | 并返回新的长度 |
shift() | 删除数组的第一个元素,数组长度减1无参数,修改原数组 | 并返回第一个元素的值 |
注意:push、unshift为增加元素方法;pop、shift为删除元素的方法
数组排序
方法名 | 说明 | 是否修改原数组 |
---|---|---|
reverse() | 颠倒数组中元素的顺序,无参数 | 该方法会改变原来的数组 返回新的数组 |
sort() | 对数组的元素进行排序 | 该方法会改变原来的数组 返回新的数组 |
注意:sort方法需要传入参数来设置升序、降序排序
- 如果传入“function(a,b){ return a-b;}”,则为升序
- 如果传入“function(a,b){ return b-a;}”,则为降序
数组转换为字符串
方法名 | 说明 | 返回值 |
---|---|---|
toString | 把数组转换成字符串,逗号分隔每一项 | 返回一个字符串 |
join(‘分隔符’) | 方法用于把数组中的所有元素转换为一个字符串 | 返回一个字符串 |
注意:join方法如果不传入参数,则按照 “ , ”拼接元素
数组的其他方法
方法名 | 说明 | 返回值 |
---|---|---|
concat() | 连接两个或多个数组 不影响原数组 | 返回一个新的数组 |
slice() | 数组截取 slice(begin,end) | 返回被截取项目的新数组 |
splice() | 数组删除 splice(第几个开始,要删除个数) | 返回被删除项目的新数组 这个会影响原数组 |
8. 根据字符返回位置
- 字符串对象 根据字符返回位置 str.indexOf(‘要查找的字符’, [起始的位置])
- 因为indexOf 只能查找到第一个,所以后面的查找,利用第二个参数,当前索引加1,从而继续查找
var str = '改革春风吹满地,春天来了';
console.log(str.indexOf('春'));
console.log(str.indexOf('春', 3)); // 查询到第一个字符后,再从3开始查询下一个字符,只能
9. 根据位置返回字符 charAt()
charAt(index) 根据位置返回字符
方法名 | 说明 | 返回值 |
---|---|---|
str.indexOf() | 跟据字符位置返回值 | 如果有该元素,则返回当前位置,如果查询不到,就返回-1 |
charAt(index) | 根据位置(索引)返回字符 | 返回当前索引,所对应的元素 |
charCodeAt(index) | 判断用户按下了哪个键 | 返回相应的索引号字符ASCII |
str[index] | H5新增 | 根据索引返回字符 |
10. 字符串操作方法
字符串的拼接 concat()
concat()
方法用于连接两个或多个字符串。拼接字符串,等效于+,+更常用
使用格式:
var str = 'andy';
console.log(str.concat('red'));
// 输出 andyred
字符串的截取 substr()
substr()
从start位置开始(索引号),length 取的个数 用于字符串,数组的截取
var str1 = '改革春风吹满地';
console.log(str1.substr(2, 2));
// 第一个值是 从第几个开始 第二个值是取几个字符
方法名 | 说明 |
---|---|
concat(str1,str2,str3…..) | concat() 方法用于连接两个或多个字符串。拼接字符串,等效于+,+更常用 |
substr(start,length) | 从start位置开始(索引号),length 取的个数 用于字符串,数组的截取 |
slice(start,end) | 从start位置开始,截取到end位置,end取不到(他们俩都是索引号) |
substring(start,end) | 从start位置开始,截取到end位置,end取不到 基本和slice 相同 但是不接受负值 |
字符的替换 replace()
replace() 方法用于在字符串中用一些字符替换另一些字符,其使用格式如下:
字符串.replace(被替换的字符串, 要替换为的字符串);
字符串的切割 split()
split()方法用于切分字符串,它可以将字符串切分为数组。在切分完毕之后,返回的是一个新数组。
其使用格式如下:
// split('') 把字符串默认以逗号切割,返回一个新的数组
str.split("分割符")