javascript笔记整理(数据类型强制/隐式转换 )
A.数据类型强制转换
1、转换为数值类型
Number(参数) 把任何的类型转换为数值类型
A.如果是布尔值,false为0,true为1
var a=false;alert(Number(a)); a=0
B.如果是数字,转换成为本身。将无意义的后导0去掉
var a=3.2;alert(Number(a)); a=3.2
C.如果Null转换为0
var a=null;alert(Number(a)); a=0
D.如果是undefined 转换为NaN not a number
var a;alert(Number(a)); a=NaN
E.如果对象则会先调用对象的 valueOf(),如果valueOf()返回的是NaN,然后再调用对象的toString()
var a={toString:function(){return 3;},valueOf:function(){return"abc";}}; alert(Number(a)) a=3
F.如果是字符串
1.如果字符串当中只有数字,转换为10进制(忽略前导0和后导0)
var a="0123.0";alert(Number(a)); a=123
2.如果是有效的规范的浮点型,转换为浮点值(忽略前导0和后导0)
var a="023.110";alert(Number(a)); a=23.11
3.如果是空字符串,则转换为0
var a="";alert(Number(a)); a=0
4.如果是其他的值,返回NaN
var a="chen";alert(Number(a)); a=NaN
parseInt(string,radix) 将字符串转换为整数
string 必需。要被解析的字符串。
radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
A.如果一个字符串只包含数字,则以10进制的方式转换为整型
var a="12.2";alert(parseInt(a)); a=12
B.他会自动忽略字符串前面的空格,知道找到第一个非空的数值字符串,直到解析到第一个非数值的字符串结束。
var a=" 2a2";alert(parseInt(a)); a=2
var a=" 21a2";alert(parseInt(a)); a=21
C.如果字符串的第一个字符不是空格、数字、-,那么返回NaN
var a=" a21a2";alert(parseInt(a)); a=NaN
parseFloat() 将字符串转换为浮点数
A.字符串当中的.只有第一个有效,其他的都是无效的。
var a="12.2";alert(parseInt(a)); a=12.2
B.如果字符串是一个有效的整数,他返回的是整数,不会返回浮点数。
var a="12";alert(parseInt(a)); a=12
var a="12.0";alert(parseInt(a)); a=12
2、转换为数值类型
1. String(参数):可以将任何的类型转换为字符串
null 结果 null
undefined 结果 undefined
true 结果 true
false 结果 false
1 结果 1
数值类型 结果 本身的字符串
2.toString()---调用的格式:对象.toString()。作用是将对象以字符串的方式来表示
array.toString() 结果 由,分割的字符串
var arr=[a,b,c];alert(arr.toString()); a,b,c
Boolean.toString() 结果 两个值 true false
var a=true;alert(arr.toString()); true
String.toString() 结果 返回本身
var a="陈";alert(arr.toString()); 陈
Number.toString(radix) 结果 返回本身的字符串形式
var a=12;alert(arr.toString()); 12
radix 可选。规定表示数字的基数,使 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值。
注意:null和undefined没有toString()方法
3、转换为布尔类型:Boolean()可以将任何类型的值转换为布尔值
转换为假: ""、 0、 NaN 、undefined、 false
其他的全部都转换为真
B.数据类型隐式转换
1.函数类
a.isNaN()
该函数会对参数进行隐式的Number()转换,如果转换不成功则返回true;
var a='a23';alert(isNaN(a)); true
var a='23';alert(isNaN(a)); false
b.alert()输出的内容隐式的转换为字符串
var a='23';alert(isNaN(a)); 23
2.运算符类
a.算数运算符 (- * / %)
如果操作数不是数值, 将会隐式的调用Number()函数,按照这个函数的转换规则进行转换,如果转换不成功,整个表达式返回NaN
var a='a23';var b='b23';alert(a+b); a23b23
var a='23';var b='bc';alert(a*b); NaN
*********加号(+)***********
*.如果操作数都是数值,然后进行相加
var a='2';var b='3';alert(a*b); 5
*.任何数据类型和字符串相加,都会隐私的调用他们的toString()方法,然后返回他们拼接的结果。
var a='2b';var b='c3';alert(a*b); 2bc3
*.如果操作数都是布尔值,那么进行Number()转换,false为0,true为1,进行相加。
var a=true;var b=false;alert(a+b); 1
var a=true;var b=true;alert(a+b); 2
b.关系运算符
关系运算符的操作数可以是任何类型,如果操作数不是数值类型,将会隐式的转换
1.运算的结果都是布尔值(ture;false)
2.都是字符串的时候,会转换成ASCII码再比较;多个字符串只比较首个,首个相等再比较下一个。
var a='abv';var b='aba';alert(a>b);结果ture.
ASCII码:a=a; -> b=b; -> v>a;
3.都是数值正常比较
4.当一个是字符串,一个为数值的时候;会把字符串转化为数值类型,然后进行比较,如果不能转换为数值类型,则会返回NaN,返回false
5.unfinished null
6.如果两个都是数值型字符串,那么他们也只是比较第一个。
var a='223';var b='31';alert(a>b); == false
7.一个数值和布尔值比较,会把布尔值转化为数值后再较。
false=0;true=1
c.等性运算符 (== !=)
会对操作数隐式的转换后再比较值
(1)如果其中至少有一个是布尔值,那么会隐式的调用Number()进行转换,然后比较。
(2)如果一个为字符串。另一个为数值,那么会隐式的调用Number()对字符串进行转换,如果转换不成功,则返回false;
(3) undefined == null
(a) 比较字符串的时候是比较他们的ASCII码是否相等
(b) 比较两个数值的时候是比较他们的数值是否相等
(c) 比较函数的时候,判断他们的位置是否相等。
d.逻辑运算符
A. 放在表达式里面用于判断。
B. 给变量赋值
var a= b && c
如果一个运算数是对象,另一个是隐式的调用Boolean()函数,返回该对象。
如果两个运算数都是对象,返回第二个对象。
如果某个运算数是 null,返回 null。
如果某个运算数是 NaN,返回 NaN。
如果某个运算数是 undefined,发生错误。
var a=b ||c
如果一个运算数是对象,并且该对象左边的运算数隐式的调用Boolean()函数 值为 false,则返回该对象。
如果两个运算数都是对象,返回第一个对象。
如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。
如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。
如果某个运算数是 undefined,发生错误。
3、语句类
if(表达式){}else{}
格式: var 变量= Boolean expression?真值:假值
while(){}
if语句和三元表达式里面的表达式会隐式的调用Boolean()函数,按照这个函数的转换规则,转换为相应的布尔值
转载于:https://www.cnblogs.com/chenrf/p/4908738.html
javascript笔记整理(数据类型强制/隐式转换 )相关推荐
- javascript深入浅出——学习笔记(六种数据类型和隐式转换)
在慕课之前学过JS深入浅出,最近发现很多东西都记不太清楚了,再复习一遍好了,感觉这个课程真的超级棒的,做做笔记,再添加一些学习内容?随时补充 课程大纲 1.数据类型 2.表达式和运算符 3.语句 4. ...
- js拼接字符串时数据类型的隐式转换
数据类型的隐式转换:字符串类型string>数值类型number>布尔类型boolean数字+字符串:数字需要转成字符串 数字+布尔值:布尔值需要转成数字(true转成1,false转成0 ...
- Hive中数据类型和隐式转换
基本数据类型(能记住几个常用的就行) HIVE数据类型 Java数据类型 TINYINT byte SMALINT short INT int BIGINT long BOOLEAN boolean ...
- C语言数据类型转换规则(隐式转换+显式转换)
赋值过程中的类型转换 如果赋值运算符两侧的类型不一致,但都是基本类型时,在赋值时要进行类型转换.类型转换是由系统自动进行的,转换的规则是: 将浮点型数据(包括单.双精度)赋给整型变量时,先对浮点数取整 ...
- 基本数据类型的隐式转换
基本数据类型( int, short, long int, long long, c har, float, double, ...
- JavaScript的隐式转换
JavaScript的隐式转换 一. JavaScript 数据类型 二. JavaScript 隐式转换 1. 隐式转换规则 2. + 运算符 3. == 运算符 4. >运算符 5. 复杂数 ...
- JS的类型转换,强制转换和隐式转换
JS的类型转换 1.强制转换 通过String(),Number(),Boolean()函数强制转换 var str=123;var str1='123';console.log(typeof str ...
- javaScript基础之隐式转换
隐式转换,这个是JavaScript,这个时候的一些java中的经验不但不会帮助自己,还有可能会错误的引导自己. 数据类型 JavaScript的变量可以分为三种方式,字面量形式,包装器方式,以及ne ...
- 隐式转换和显式转换及强制转换的区别
string strType = "123"; object objType= (object)strType;//可以不要,隐式转换, 要的为显式转换 string strTyp ...
最新文章
- AutoX李卓:无人驾驶市场是渐进式的,但技术其实很难渐进式
- Fedora16安装mplaye和smplayer
- 使用Docker-Compose搭建高可用redis哨兵集群
- vue 插件(Sublime Text 3 常用插件以及安装方法)(转)
- dos从优盘启动计算机,制作U盘dos启动盘的五大步骤
- 经典成功创业-36法则
- 硬盘的结构和介绍,硬盘MBR详细介绍(超详细彩图)
- 使用 Sprinkles 构建您自己的类型安全版本的 Tailwind CSS
- pmp考试【5】emv期望货币价值计算
- notion自建服务器,【速报】Notion的特色「双向链接」方案来了,Synced Block 登场...
- 厉害!张近东钦点,80后郝嘉成苏宁北京300亿市场掌舵人
- java开源项目之IQQ学习记录之项目环境搭建与启动
- Ritzy Aspen酒店联手Indiegogo使用区块链出售房产
- 心理学大白话:科学理解束缚我们的常见思维
- 石墨烯/SiO2复合气凝胶微球/包覆二氧化硅纳米颗粒/载Pt石墨烯中空二氧化硅微球
- 关于img标签中data:image/XXX;base64图片内容提取
- uvm打印信息冗余度和重载打印信息
- 彻底关闭ACDSEE 弹出的注册ID对话框
- 本题要求将给定的n个整数从大到小排序后输出。
- C# RAS 加密与解密讲解