一.一元加的五个NaN
1.对象
+{} //NaN
+{y:n,y:c} // NaN
2.数组
+["a"] //NaN
+[1,2,3] //NaN
3.undefined
+undefined //NaN
4.函数
+function(a){return a} //NaN
5.字符串
+"abc" //NaN
二.一元加的四个0
1.+false //0
2.+null //0
3.+"" //0
4.+[] //0
三.Number()内置函数
语法规则:
- Number是整体转换,对传入的每一个字符进行检测,只要有一个字符无法转换它就返回NaN
- Number是js的一个内置的构造函数
- 调用Number方法的时候,它可以把任意类型的值转换为数值型
规则:
1.Number()方法是整体1转换:对传入的每一个字符进行转换
转换成功:有一个字符无法转换,那么它就返回nan
转换失败:全部字符通过检测,则返回检测到的数值
2.字符串:Nunber()方法可以转换小数点
3.字符串:可以转首尾空格
4.字符串:Number()方法无法转换字母特殊符号
5.布尔值:true 转为 1 false 转为0
6.对象 : 空对象{} 转为nan
7.null 转为0
8.undefined 转为nan
9.空字符串 '' 转为0
10.数组: [ ]空数组转为0
11.数组:[100]转为100
12.数组:[1,2,3]转为nan
三.String()内置函数
- 任何一种数据类型都可以转成字符串
-
方法一:String()
定义:
- String()作为函数调用时,它将传入的值转为字符串
- String()用于构造函数
1.空数组 [ ] //空字符串
2.数组 [1,2,3]//1,2,3
3.空对象 {} //[object object]
4.有属性的对象{name:"nh"}//[object object]
5.负零 -0 // 0
6.负无穷//无穷
四.前置++,后置++
- 前置++:返回自增1之后的结果
- 后置++:返回自增1之前的结果
五.window对象的三种弹窗
1.window.alert() 饿楞特
定义:弹出一个警示框
返回值:undefined
2.window.prompt() 破ruang目特
定义:弹出一个对话框
- str1:设置对话,提示信息,可选
- str2:设置默认值,可选
返回值:
1.输入并确定:返回用户输入的值
2.未输入点击确定:返回空字符串
3.点击取消返回:null :空对象
3.window.confirm() 砍佛母
定义:弹出一个确认框
语法:
str:确认的信息
返回值:
- true : 点击确定按钮
- false :点击取消按钮
六基于类型转换的相等
- 相等操作符 == 与严格相等类似,但没那么严格。如果两个操作数的值类型不同,它会尝试做类型转换,然后再比较。
- 如果两个值类型相同,则按照前面的规则测试它们是否严格相等。如果严格相等.则相等。如果不严格相等,则不相等。
- 如果两个值类型不同,== 操作符仍然可能认为它们相等。此时它会使用以下规则,基于类型转换来判定相等关系。
-如果一个值是 null,另一个值是 undefined,则相等 - 如果一个值是数值,另一个值是字符串,把字符串转换为数值,再比较转换后的
数值。 - 如果有一个值为 true,把它转换为 1,再比较。如果有一个值为 false,把它转换为0,再比较。
- 如果一个值是对象,另一个值是数值或字符串,先使用 3.9.3 节描述的算法把对象转换为原始值,再比较。对象转换为原始值时要么使用其 tostring() 方法,要么使用其 valueof() 方法。JavaScript 内置的核心类先尝试使用 valueof(),再尝试tostring()。但 Date 类是个例外,这个类执行 tostring() 转换- 其他任何值的组合都不相等
下面来看一个比较相等的例子:
"1" == true // => true
- 这个表达式求值为 true,意味着这两个看起来完全不一样的值实际上相等。布尔值true 首先被转换为数值 1然后再比较。而字符串“1"也被转换为数值 1。此时两个值相等,因此比较返回 true。
网友评论