JS学习二:数据类型、类型转换
JS 的基本数据类型:
1.数字number:包括整数和浮点数
2.字符串string:
3.布尔值boolean:包括true和false
4.undefined:访问一个不存在的变量,会得到一个特殊值undefined;访问一个已定义但未赋值的变量,也会如此。
5.null:只包含一个值的特殊数据类型,通常表示”不代表任何东西“,没有值或空值。
null与undefined不同的地方:被赋值为null的变量,通常被认为是已经定义了的变量,只不过它不代表任何东西。
JS非基本数据类型:对象
标识符,是一个字符串。
字符串未必是标识符。
标识符的规则:
- 只能由数字、字母、下划线、$符号组成
- 开头不能是数字
- 不能使用js的关键字和保留字
- 区分大小写
- 遵循驼峰原则
- 见名知意
标识符的作用:给变量、函数等命名使用。
变量的定义(variable):var 变量名;
数据的存储:变量名 = 表达式;
常量:不能改变的数据
查看变量类型:typeof()
var x; x = 10 console.log(typeof(x));
结果:number
1.数值类型的数据:
JS不强制要求,在语句后面加分号。
字符串的拼接:
var x = 10; var y = 15; var sum = x + y; console.log("sum = " + sum); // 数字和字符串拼接时,会自动转成字符串
JS能表示的最大数字是:1e308,10的308次方。
var num3 = 1e308; console.log(num3); var num4 = 1e309; console.log(num4); // 结果 1e+308 和 infinity
JS的数字类型中,有两个特殊值,注意区分大小写:Infinity、NaN
Infinity与任何数值运算的结果,仍然是Infinity
var num1 = Infinity; // 表示超过了js能表示的数字范围 console.log(num1 + 1) console.log(num1 - 10) //结果:Infinity 和 Infinity
判断某数值是不是Infinity,使用isFinite:
console.log(Infinity == Infinity) // 不能这样判断,结果返回fasle console.log(isFinite(Infinity)) //返回true
NaN与任何数值运算的结果,仍然是NAN
var num2 = NaN; //NAN表示定义的不是一个数值的特殊数值 console.log(num2 + 1); console.log(num2 - 10); //结果:NaN 和 NaN
判断一个数值是不是NaN,不能使用 NaN == NaN,要使用isNaN():
console.log(NaN == NaN) // 判断结果为 false
console.log(isNaN(NaN)) // 判断结果:true
2.字符串类型的数据
拼接使用 +
var str1 = "hello world!" console.log(str1 + "haha") // 结果:hello world!haha
不区分单,双引号。
3.布尔值类型的数据:true和false
var a = true; var b = false; console.log(a, b) //结果:true 和false
假值,六种:
- 0,0.0
- "",''
- NaN
- undefined
- null
- false
4.其它类型转换数值:
1).字符串 转换 数值,有几个方法:parseInt,Number
字符串前面的空白会自动去除。
通常使用paserInt。
使用parseInt转换时,如果字符串以数字开头,将取值,直到不是数字为止;取不到数字时,返回NaN:
var num1 = parseInt("123"); console.log(num1) var num2 = parseInt("12ab3") console.log(num2) var num3 = parseInt("ab12c3") console.log(num3)//结果依次为:123,12,NaN
使用Number转换时,字符串须全部是数字,才可以转换,否则返回NaN:
var num1 = Number("123"); console.log(num1) var num2 = Number("12ab3") console.log(num2) var num3 = Number("ab12c3") console.log(num3) //结果依次为:123,NaN,NaN
parseInt转换为整形,parseFloat转换为浮点数,转换原则基本一样。
var n1 = " 12.3" console.log(parseInt(n1)) console.log(parseFloat(n1)) var n1 = " 12" console.log(parseInt(n1)) console.log(parseFloat(n1)) //结果依次为:12, 12.3,12,12
2).undefined转换为数值,结果为NaN
var num5 = parseInt(undefined) console.log(num5) var num9 = Number(undefined) console.log(num9) //结果依次为:NaN,NaN
3).对于 特殊类型的null,undefined,true,flase,""转为数值时:
使用parseInt对特类型取值,得到的结果都是NaN:
var num5 = parseInt(null) console.log(num5) var num6 = parseInt(true) console.log(num6) var num7 = parseInt(false) console.log(num7) var num13 = parseInt("") console.log(num13) //结果依次为:NaN,NaN,NaN,NaN
使用Number对特殊类型取值,得到的结果是0或1:
var num8 = Number(null) console.log(num8) var num10 = Number(true) console.log(num10) var num11 = Number(false) console.log(num11) var num12 = Number("") console.log(num12) //结果依次为:0,1,0,0
5.其它类型转字符串:String()
数值转字符串:
console.log(String(123)) console.log(String(123.45)) console.log(String(0.25)) console.log(typeof(String(23))) //结果依次为:"123","123.45","0.25",string
undefined转字符串:
console.log(String(undefined)) console.log(typeof(String(undefined))) //结果为:"undefined",string
console.log(String(undefined) + "abc") console.log(typeof(String(undefined) + "abc")) //结果为:"undefinedabc",undefined
null转字符串:
console.log(String(null)) console.log(typeof(String(null))) //结果为:"null", string
console.log(String(null) + "abc") console.log(typeof(String(null) + "abc")) //结果为:"nullabc", string
boolean转字符串、拼接:
console.log(String(true)) console.log(typeof(String(true))) console.log(String(false)) console.log(typeof(String(false))) // 结果为:"true", string, "false", string
console.log(String(true) + "abc") console.log(typeof(String(true) + "abc")) console.log(String(false) + "abc") console.log(typeof(String(false) + "abc")) // 结果为:"trueabc", string, "falseabc", string
6.其它类型转布尔类型
结果为true的:
console.log(Boolean(123)) console.log(Boolean(12.23)) console.log(Boolean("abc")) console.log(Boolean(Infinity))
结果为false的:
console.log(Boolean(0)) console.log(Boolean(0.0)) console.log(Boolean("")) console.log(Boolean(undefined)) console.log(Boolean(null)) console.log(Boolean(NaN))
posted on 2018-11-17 18:48 myworldworld 阅读(161) 评论(0) 收藏 举报