typeof() 内置函数
console.log(typeof([])); // object
console.log(typeof({}));//object
console.log(typeof(null));//object
console.log(typeof(undefined));//undefined
console.log(typeof(function(){}));//function
console.log(typeof(1 - 1));//number
console.log(typeof(1 - '1'));//number
console.log(typeof('1' - '1'));//number
// 不声明a
console.log(a);// 报错 a is not defined
console.log(typeof(a));//undefined
console.log(typeof(typeof(a)));//string 解析:
// 任何typeof() 里面的typeof() 都是string ; typeof(数据类型) = string
显示类型转换
- Number() 函数把对象的值转换为数字。 Number(object)
var a = '123';
console.log( typeof(Number(a)) + '-' + Number(a)); //number-123
a = true;
console.log( typeof(Number(a)) + '-' + Number(a)); //number-1
a = false;
console.log( typeof(Number(a)) + '-' + Number(a)); //number-0
a = null;
console.log( typeof(Number(a)) + '-' + Number(a)); //number-0
a = undefined;
console.log( typeof(Number(a)) + '-' + Number(a)); //number-NaN
a = 'a';
console.log( typeof(Number(a)) + '-' + Number(a)); //number-NaN
a = '1a';
console.log( typeof(Number(a)) + '-' + Number(a)); //number-NaN
a = '3.14';
console.log( typeof(Number(a)) + '-' + Number(a)); //number-3.14
- parseInt() 函数可解析一个字符串,并返回一个整数。如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。开头和结尾的空格是允许的。
parseInt(string, radix)
string | 必需。要被解析的字符串。 |
radix | 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。 如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。 |
var b = '3.14';
console.log( typeof(parseInt(b)) + '-' + parseInt(b));//number-3
b = '3.99';//不是四舍五入
console.log( typeof(parseInt(b)) + '-' + parseInt(b));//number-3
b = true;
console.log( typeof(parseInt(b)) + '-' + parseInt(b));//number-NaN
b = '10';
console.log(parseInt(b,16)) // 16 ?
console.log(parseInt("010")) // 10
console.log(parseInt(' 31 34')) // 31
- parseFloat() parseFloat(string)
- 是全局函数,不属于任何对象。
- parseFloat 将它的字符串参数解析成为浮点数并返回。如果在解析过程中遇到了正负号(+ 或 -)、数字 (0-9)、小数点,或者科学记数法中的指数(e 或 E)以外的字符,则它会忽略该字符以及之后的所有字符,返回当前已经解析到的浮点数。同时参数字符串首位的空白符会被忽略。
- 如果参数字符串的第一个字符不能被解析成为数字,则 parseFloat 返回 NaN。
- 可以通过调用 isNaN 函数来判断 parseFloat 的返回结果是否是 NaN。如果让 NaN 作为了任意数学运算的操作数,则运算结果必定也是 NaN。
var num =parseFloat('3.1415926');//3.1415926
console.log(parseFloat(num.toFixed(4)));//3.1416 四舍五入
console.log(parseFloat(" 60 "));//60
console.log(parseFloat(" 60years "));//60
console.log(parseFloat(" He60years "));//NaN
// 下面的例子都返回 3.14:
console.log(parseFloat("3.14"));
console.log(parseFloat("314e-2"))
console.log(parseFloat("0.0314E+2"))
console.log(parseFloat("3.14more non-digit characters"))
- toString
//toString()
var str = 123;//123
str = undefined;//报错 没有这个方法
str = null;//报错 没有这个方法
// console.log(str.toString());
str = 100;
console.log(str.toString(2));//1100100 2进制
- Boolean()
undefined null NaN "" 0 false
其他的都是true