==比较
如果两边都是number类型,有一边是NaN,则结果false
如果两边数据类型不一样:
如果边是字符串,一边是数字,则会将字符串转为数值,然后比较
如果有一边是布尔值,则会将布尔值转为数字(true=>1
false=>0), 然后比较
如果边是对象, 另-边是字 符串或数字则会将对象调用toString和valueOfj
法,转为原生值,然后比较1
如果边是undefined, 另一边是nu11这 比较结果true
如果比较条件都不是符合之前的一种,返回结果都是false
]如果逻辑表达式放在条件判断的小括号中,会将结果默认转为布尔值
逻辑表达式的结果
&& 俩边的表达式,从左往表达的是结果转布尔值为false,则将这个表达式的结
果作为整个表达式的结果,如果两个都为true, 则将后面的表达式的结果作为整个表达式的
结果
|| 两边的表达式,从左往右,如果表达的是结果转布尔值为true,则将这个表达式的结果
作为整个表达式的结果
,如果两个都为false, 则将后面的表达式的结果作为整个表达式的
结果
开启严格模式:在作用域的最前面,写上字符串use strict 就开启严格模式
1.在严格模式下,申明变量必须要使用关键字声明,否则报错
2.严格模式下,定义函数的时候函数的形参不能同名
3.在严格模式下,全局函数中的this不在指向window,变为undefined
- 默认 全局作用域下的函数内部的,关键字this指向了window对象
- 在全局的window对象中本身就有name属性,且值为空字符串(我们在全局中最好不要使用name)
ES5的数组常见方法
1. forEach()遍历数组
- 语法:
数组. forEach( function( item, index,arr){
- item表示数组中的每一个元素
- index表示数组中索引
- arr表示数组本身
})
组有多少个元素,就循环多少次
2. map()
-映射根据特定的条件计算返回数组元素计算后的结果,是一个新数组
-不会改变原数组
-返回值为:按要求改变的新数组,按条件返回元素,条件要写在return后
3.filter()
-按条件过滤数组中的元素,符合条件的元素返回组成一个新数组
-不会改变原始的数组
-返回值:是符合条件的原数组中的元素,组成的新数组
5.every()
-遍历数组,只要数组中有一个元素不符合条件,就返回false, 全部符
合条件才返回true;循环数组中,只要出现了一次不符合条件的,就停止循环
-不会改变原始的数组
-返回值:布尔值
创建字符串的方式
1.字面量方式创建
varstr1 = 'hello' ;
2.内置构造函数创建字符串 String()
varstr = new String( ) ;
console.
log(str);——>空字符串
字符串常用方法
-字符串也有索引下标,所以我们可以通过for循环遍历字符串中的字符
-可以通过索引下标找到字符串中的对应字符
-遍历字符串
方法:
* 1.charAt(索引) 根据索引查找在字符串中的对应字符,如果找不到就返回空字符串
2.charCodeAt() 根据索引查找在字符串中对应字符的ASICC编码,如果没有就返回NaN
* 3.indexOf(内容)查找内容在字符串中的索引下标,如果没有就返回-1
{indexOf(内容,起始索引)查找内 容从起始索引开始查找
}
* 4.split(内容) 字符串根据指定的内容字符,炸开,形成一个数组
5.substring(起始索引,结束索引)根据索引截取字符串中的内容,返回截取的内容,不会影响原始字符
(包前不包后, 不包含大的索引)
*6.substr(起始索引,截取的个数)从起始索引开始截取对应的个数
* 7.toLowerCase()转为小写 toUpperCase()转为大写
* 8.replace(要替换那个内容,替换为什么内容)字符串内容替换
数组的冒泡排序
遍历数组拿到最大值,并放到最后的位置
循环数组的时候,将前一个和后一个进行比较,如果前一个更大,则交换位置
数组的选择排序
假设第0个位最小值
从第1个开始循环数组,拿数组中的元素个我们假设的值进行比较,如果比我们假设的更小,则记录下索引,并调换位置
假设第1个位最小值
从第2个开始循环数组,拿数组中的元素个我们假设的值进行比较,如果比我们假设的更小,则记录下索引,并调换位置
假设第2个位最小值
从第3个开始循环数组,拿数组中的元素个我们假设的值进行比较,如果比我们假设的更小,则记录下索引,并调换位置
临时包装数据类型
var str = 'hello';
此时基本数据类型成功调用了 字符串对象中的方法
console.log(str.indexOf("e"));
var num= 123.456;
数字对象有一个方法toFixed() 保留数字的小数位数,会有四舍五入,不够就补0
console.log(num.toFixed(1));
此时基本数据类型成功调用了 数字对象中的方法
console.log(num.toFixed(10));
var flag = true;
toSting() 将对象转为字符串
此时基本数据类型成功调用了 布尔对象中的方法
console.log(flag.toString()); //字符串true
在基本数据类型(数值,字符串,布尔),调用对应的对象的方法的时候这个数据会变成临时包装数据类型
临时包装数据类型,会将这个基本数据类型的变量临时包装为对象,去调用方法
在方法调用结束之后,临时包装类型的对象销毁
阿斯克码
ES5中的数组方法 indexOf方法
var arr = [1,2,3,4,5];
1. forEach() 遍历数组
- 不会改变原数组
- 没有返回值
语法:
数组.forEach(function(item,index,arr){
item表示数组中的每一个元素
index表示数组中索引
arr表示数组本身
})
数组有多少个元素,就循环多少次
2. map()映射 根据特定的条件计算返回数组元素计算后的结果,是一个新数组
- 不会改变原数组
- 返回值为:按要求改变的新数组,按条件返回元素,条件要写在return后
3. filter() 按条件过滤数组中的元素,符合条件的元素返回组成一个新数组
- 不会改变原始的数组
- 返回值: 是符合条件的原数组中的元素,组成的新数组
4. some() 遍历数组,只要数组中有一个元素符合条件,返回布尔值true,否则返回false,循环数组中,只要出现了一次符合条件的,就停止循环
- 不会改变原始的数组
- 返回值:布尔值
5. every() 遍历数组,只要数组中有一个元素不符合条件,就返回false,全部符合条件才返回true;,循环数组中,只要出现了一次不符合条件的,就停止循环
- 不会改变原始的数组
- 返回值:布尔值