数据类型---数据类型转换、隐式类型转换
2016-03-02 23:15
1161 查看
数据类型的转换***
javascript 本身是一种弱类语言,
#c/c++/java 强类型语言
#javascript 弱类型语言
#生活
特点:
1:声明变量,不用提前指定数据类型
var i;
2:同一个变量,先后使用可以保存不同类型数据
var i = 10;
i = "abc";
i = true;
console.log(i);
3:javascript会根据需要,自动转换数据类型
数据类型转换二种
1:隐式类型转换
不需要程序员干预,js自动完成类型转换
算数运算自动转换.
#booealn
true --> 1
false--> 0
#+ 二种含义,如果运算符二侧数字 + 相加
如果运算符二侧有一个是字符串
+ 拼接运算
"abc"+"kkk" //"abckkk"
#false--->0
#null---->0
2:显示类型转换[强制]
程序员通过调用函数完成类型转换
2.1:任意类型 --》字符串
a:x.toString();
b:String(x);-->比上面更通用
#js有一个函数 typeof(x) 返回变量类型
#x.toString()
#如果数据是 null 报错
#undefiend 报错
#String() 以上几种类型转换成功
-------------------------------------------------
1. ***数据类型转换:
强制转换:
转string: var str=x.toString();
//x不能是null和undefined
var str=String(x); 万能
//相当于隐式转换
转number:
1. 任意类型 to number:
var num=Number(x);
//相当于隐式转换
//如果x是纯数字组成或可被隐式转为数字,则返回一个number的数值
//如果x不是纯数字组成或不可被隐式转为数字,则返回NaN。
什么是NaN:Not a number 无效的数字
typeof(NaN): number
2. string to number:
var num=parseInt(str);
执行原理:从str的开始位置,依次读取每个字符
跳过开头的空白字符
仅读取数字字符
碰到第一个不是数字的字符,就退出
不认识小数点
比如: var width="12px";
width=parseFloat(width);//12
width=width+5;//17
width=width+"px";//17px;
parseInt vs Number:
Number只能转纯数字的字符串,但却可转bool类型
比如: Number("12px") -> NaN
Number(true) -> 1
Number("12.5") -> 12.5
parseInt可启动去除数字后的非数字字符
但不能转换boolean类型
比如: parseInt("12px") -> 12
parseInt(true) -> NaN
parseInt("12.5") -> 12
parseFloat(str): 用法和parseInt完全相同
认识第一个小数点
parseFloat("12.5px") -> 12.5
parseFloat("12.5.5") -> 12.5
parseFloat("12.0") -> 12
总结: 何时使用
Number(x): 一般在隐式转换时,自动调用
parseInt/Float: 将字符串转为数字时,最好用parseXXX。
parseInt: 确定需要去掉小数部分时才用
parseFloat: 如果没有明确要求去掉小数部分,最好用parseFloat
转bool : Boolean(x);//相当于隐式转换
***只有x是"",0,NaN,null,undefined,false 时,才转为false
其余全都转为true
隐式转换:
2.2 任意类型转换成->数字
Number(); 强制转换任意类型-》数值
parseInt(); 强制转换字符串类型->数值[整值]
parseFloat(); ..... [小数.浮点]
Number(); 转换严格
Number("");-->0
Number(true);-->1
Number(false);-->0
Number(null);--->0
Number("123");--->123
Number("12ab");-->NaN {not a number}不是一个数字
#parseInt
#字符串转数字
#从左向右依次分析每个字符,如果碰到第一个
非数字字符退出.
不识别小数点,小数点后内容省略
"123.90abc"
->[123]
#parseFloat
#字符串转数字
#功能同上,识点小数点保留小数点后数值
exam:
1:创建变量 保存值 true
2:转换整型数
3:创建变量 保存值 "123kk"
4:转换整型数
5:创建变量 保存值 "99.99#"
6:转换浮点数
小结:
Number 转换范围广{null/true/false/"1a3"}
parseInt 将字符串转数值
parseFloat
面试题:
Number() vs parseInt();
1:以上二个函数功能相似,都是将其它类型转换
数值
2:不同点
Number() 转换范围
parseInt() 字符串 转换整型数值
"99px"--->99
2.3:任意类型--->布尔 boolean
Boolean();0 null undefined "" NaN
以上5种转换false其它都会转换 true
小结:
强制类型转换
1:任意类型转字符串
d.toString();[null,undefiend 报错]
String()
2:任意类型转数值
Number(); 范围广
parseInt(); 字符串转数值
parseFloat();
3:任意类型转布尔
Boolean(); 0 "" undefined null NaN
javascript 本身是一种弱类语言,
#c/c++/java 强类型语言
#javascript 弱类型语言
#生活
特点:
1:声明变量,不用提前指定数据类型
var i;
2:同一个变量,先后使用可以保存不同类型数据
var i = 10;
i = "abc";
i = true;
console.log(i);
3:javascript会根据需要,自动转换数据类型
数据类型转换二种
1:隐式类型转换
不需要程序员干预,js自动完成类型转换
算数运算自动转换.
#booealn
true --> 1
false--> 0
#+ 二种含义,如果运算符二侧数字 + 相加
如果运算符二侧有一个是字符串
+ 拼接运算
"abc"+"kkk" //"abckkk"
#false--->0
#null---->0
2:显示类型转换[强制]
程序员通过调用函数完成类型转换
2.1:任意类型 --》字符串
a:x.toString();
b:String(x);-->比上面更通用
#js有一个函数 typeof(x) 返回变量类型
#x.toString()
#如果数据是 null 报错
#undefiend 报错
#String() 以上几种类型转换成功
-------------------------------------------------
1. ***数据类型转换:
强制转换:
转string: var str=x.toString();
//x不能是null和undefined
var str=String(x); 万能
//相当于隐式转换
转number:
1. 任意类型 to number:
var num=Number(x);
//相当于隐式转换
//如果x是纯数字组成或可被隐式转为数字,则返回一个number的数值
//如果x不是纯数字组成或不可被隐式转为数字,则返回NaN。
什么是NaN:Not a number 无效的数字
typeof(NaN): number
2. string to number:
var num=parseInt(str);
执行原理:从str的开始位置,依次读取每个字符
跳过开头的空白字符
仅读取数字字符
碰到第一个不是数字的字符,就退出
不认识小数点
比如: var width="12px";
width=parseFloat(width);//12
width=width+5;//17
width=width+"px";//17px;
parseInt vs Number:
Number只能转纯数字的字符串,但却可转bool类型
比如: Number("12px") -> NaN
Number(true) -> 1
Number("12.5") -> 12.5
parseInt可启动去除数字后的非数字字符
但不能转换boolean类型
比如: parseInt("12px") -> 12
parseInt(true) -> NaN
parseInt("12.5") -> 12
parseFloat(str): 用法和parseInt完全相同
认识第一个小数点
parseFloat("12.5px") -> 12.5
parseFloat("12.5.5") -> 12.5
parseFloat("12.0") -> 12
总结: 何时使用
Number(x): 一般在隐式转换时,自动调用
parseInt/Float: 将字符串转为数字时,最好用parseXXX。
parseInt: 确定需要去掉小数部分时才用
parseFloat: 如果没有明确要求去掉小数部分,最好用parseFloat
转bool : Boolean(x);//相当于隐式转换
***只有x是"",0,NaN,null,undefined,false 时,才转为false
其余全都转为true
隐式转换:
2.2 任意类型转换成->数字
Number(); 强制转换任意类型-》数值
parseInt(); 强制转换字符串类型->数值[整值]
parseFloat(); ..... [小数.浮点]
Number(); 转换严格
Number("");-->0
Number(true);-->1
Number(false);-->0
Number(null);--->0
Number("123");--->123
Number("12ab");-->NaN {not a number}不是一个数字
#parseInt
#字符串转数字
#从左向右依次分析每个字符,如果碰到第一个
非数字字符退出.
不识别小数点,小数点后内容省略
"123.90abc"
->[123]
#parseFloat
#字符串转数字
#功能同上,识点小数点保留小数点后数值
exam:
1:创建变量 保存值 true
2:转换整型数
3:创建变量 保存值 "123kk"
4:转换整型数
5:创建变量 保存值 "99.99#"
6:转换浮点数
小结:
Number 转换范围广{null/true/false/"1a3"}
parseInt 将字符串转数值
parseFloat
面试题:
Number() vs parseInt();
1:以上二个函数功能相似,都是将其它类型转换
数值
2:不同点
Number() 转换范围
parseInt() 字符串 转换整型数值
"99px"--->99
2.3:任意类型--->布尔 boolean
Boolean();0 null undefined "" NaN
以上5种转换false其它都会转换 true
小结:
强制类型转换
1:任意类型转字符串
d.toString();[null,undefiend 报错]
String()
2:任意类型转数值
Number(); 范围广
parseInt(); 字符串转数值
parseFloat();
3:任意类型转布尔
Boolean(); 0 "" undefined null NaN
相关文章推荐
- 【JavaScript DOM 编程艺术】 笔记
- [jQuery学习系列三 ]3-JQuery学习二-字典操作
- HTML框架----frameset&iframe
- DSP Study Notes Period 1
- mvn deploy 报错:Return code is: 400, ReasonPhrase: Bad Request. ->
- iOS数据存储方式
- 练习练习
- android 面试小知识
- T-SQL 查询、修改数据表
- IdHttpServer实现webservice(130篇DataSnap文章)
- Directx11学习笔记【五】 基本的数学知识----向量篇
- 蓝牙利用协议栈API读取设备MAC地址
- 监控利器---Zabbix(一)
- 浅谈上下文(context)
- WebApi
- 联调扯皮的分歧解决办法------抓包(wireshark, tcpdump, fiddler)
- KMP POJ 1961 Period 解题报告
- 1087. All Roads Lead to Rome (30)
- centOs安装搭建php环境
- 第三百三十五天 how can I 坚持