ES之基本数据类型之间的显示转换和隐式转换
typeof(数据)/ typeof 数据 判断数据的数据类型,typeof返回的都是字符串
输出结果类型有:number、string、boolean、 undefined、object、function。
注意点:
①typeof里面的数据是null,输出object,虽然null属于原始值,
但是系统会认为它是给对象占位置用得,历史遗留问题。
②typeof里面的数据是未声明的变量,控制台不报错,
输出undefined,这也是未声明变量唯一不报错的地方。
————————————————————————————————————————————————————————————
类型转换
显示类型转换:
Boolean() 除了0 、null 、undefined 、false 、""、 是false,其他都是true
Number(mix) undefined和只要有非数字(除了‘- +’)的字符串结果都为NaN,
parseInt(String ,[radix])
null、undefind、boolean的值为NaN。
radix参数:代表当前数据当前哪种进制数,并将该数据转换成十进制数。
radix范围为2-36.
当没有radix参数时:
系统默认为是十进制。纯字符的字符串、以非数字开头的字符串返回的是NAN。
parseInt方法只能正常转换纯数字和以数字开头的字符串。
parseInt方法从数字开始取直到小数点或非数字位结束。
当有radix参数时:
当不属于十进制时,若数据为number或纯数字字符串,会将该数据转换成十进制数;
当大于十进制数时,纯字符的字符串、以非数字开头的字符串会先转换成ascii码然后转换成十进制数。
parseFloat(String)
和parseInt相似,只是在数字和非数字的串中,从数字开始直到第一个小数点后一数字位结束。
String(mix) 任何数据类型都能转换成字符串。
toString([radix]) undefined和null没有toString方法。
radix参数:将十进制数转换成当前进制数。
当数据为数字类型时,radix的作用是将数据a转换成radix当前值的进制数的字符串。
————————————————————————————————————————————————————————
隐式类型转换
————————————————
内部用Number()进行转换集合
isNaN() 判断数据a转换成数字类型后是否为NaN。
++/-- 自增、自减 无论自增自减放前面或后面都是先进行Number(数据a)
转换,再进行表达式的运算。
正负、-、*、/ 减、乘、除 判断数据是数字还是NaN,若为数字则正常计算,若为NaN则直接输出NaN。
> 、< 、>= 、<= 字符串和数字比较,则用Number()转换成数字。
字符串和字符串比较则用ascii代码比较
当1>2>3... 这种一个表达式中有多个比较运算符连写时,逐个判断,
true或false的个数为偶数则表达式为true,反之为false。
————————————————
内部用String进行转换
+ 加法 当加号两侧只要有一个为字符串,先进行string类型转换。
应用:将其他类型的数据加上一个空串就能变成字符串。
注意:当作为打印输出时,即使是纯数字的字符串与数字相加也还是做连接作用。
————————————————
内部用boolean()进行转换集合
&&/||/! 与、或、非 判断的时候对数据进行布尔值转换,但是输出结果是原值或表达式结果。
==、!= 数字相同的字符串和数字比较,为true, 1 == true和0 == false成立,
NaN == NaN 不成立,哪怕是不进行类型转换的"绝对等于"在NaN面前也没用,
这是唯一一个不等于任何东西的————非数。
注意点:undefined和null能转换成number类型,但是他们两个就是不能和数字作比较,因为比较的时候,他们不进行隐式类型转换。
undefined == null 两者能相等是系统内部进行的是布尔类型转换。
———————————————
不发生类型转换
=== / !== 绝对等于、绝对不等于
对于原始值来说,表面上一模一样就绝对等于,否则就绝对不等于, 但是NaN === NaN 为false
注意点:当引用值相比时,它们比的是引用地址,只要地址相等,绝对等于也成立。
ES之基本数据类型之间的显示转换和隐式转换的更多相关文章
- JS的类型转换,强制转换和隐式转换
JS的类型转换 1.强制转换 通过String(),Number(),Boolean()函数强制转换 var str=123; var str1='123'; console.log(typeof s ...
- JavaScript学习笔记——数据类型强制转换和隐式转换
javascript数据类型强制转换 一.转换为数值类型 Number(参数) 把任何的类型转换为数值类型 A.如果是布尔值,false为0,true为1 B.如果是数字,转换成为本身.将无意义的后导 ...
- c# 强制转换, 隐式转换, 显式转换
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- scala中隐式转换之隐式转换调用类中本不存在的方法
/** * Created by root * Description : 隐式转换调用类中本不存在的方法 */ class Person(name : String){ def getPersonN ...
- 【java】学习路线1-类型转换、隐式转换、强制转换
/**文档注释,这里是一段文章一般放在类的外面*/public class HelloWorld{ //这个是注释的文本 public static void main(String[] ...
- C语言数据类型的转换(隐式转换)
算术运算符中的转换规则: double ←── float 高↑long↑unsigned↑int ←── char,short 低 注意: 图中横向箭头表示必须的转换,如两个float型数参加运算, ...
- C#隐式转换和显示转换举例--C#基础
高精度的数据类型转换为低精度的数据类型是显示转换,低精度的转换为高精度的是隐式转换. 温馨提示:不能说强制类型转换是从低精度到高精度. int a=666;float b=(float)a: 由a到b ...
- 显示转换explicit和隐式转换implicit
用户自定义的显示转换和隐式转换 显式转换implicit关键字告诉编译器,在源代码中不必做显示的转型就可以产生调用转换操作符方法的代码. 隐式转换implicit关键字告诉编译器只有当源代码中指定了显 ...
- js隐式转换
JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object.object是引用类型,其它的五种是基本类型或者是原始类型.我们可 ...
随机推荐
- 织梦dedecms标签调用集合,绝对是仿站必备利器
今天分享下整理了织梦dedecms标签调用集合,绝对是仿站必备利器啊,觉得有用就转走吧!温馨小提示:CTRL+F 搜索你需要的标签名,就可以方便找到:织梦dedecms标签调用集合-首页标签:网站导航 ...
- 【HDU2007】平方和与立方和
http://acm.hdu.edu.cn/showproblem.php?pid=2007 垃圾水题 随便搜了几个公式(但我实际写的暴力...题目保证不爆int,说明n,m<=10^3) 1^ ...
- No tests found with test runner 'JUnit 3'
报异常:No tests found with test runner 'JUnit 3' 解决方案: 主要因为你当前建的JUnit类是3的版本,将该类备份,重新创建一个类. 1.右键目录New--O ...
- assign.py
#链式赋值 m=n=[1,2,3] m[0]=2 print(m,n) #m,n都改变了 x=y='xxx' y='yyy' print(x,y) #只有y 改变 #序列解包 x,y,z=1,2,3 ...
- iOS 深拷贝、浅拷贝、自定义对象拷贝简介
copy语法的目的:改变副本的时候,不会影响到源对象: 深拷贝:内容拷贝,会产生新的对象.新对象计数器置为1,源对象计数器不变. 浅拷贝:指针拷贝,不会产生新的对象.源对象计数器+1. 拷贝有下面两个 ...
- 多线程-threading模块
#coding:utf-8 import threading from time import sleep,ctime #音乐播放器 def music(func): for i in range(2 ...
- UI控件初始化问题:initWithFrame和initWithCoder、aweakFromNib的执行
在iOS学习和程序开发过程中,我们经常会遇到一些自定义UI控件或控制器在初始化时出现问题,尤其在大家刚开始接触时,几种初始化方法的作用以及调用的时机往往容易混淆,这也跟我们对iOS程序设计中,类的创建 ...
- 【203】利用UltraISO制作和刻录光盘映像的方法
参考:利用UltraISO制作和刻录光盘映像的方法 软件:UltraISO注册版(制作镜像).rar 目录: 1.利用UltraISO制作光盘映像2.利用UltraISO刻录光盘映像文件 1.利用Ul ...
- Drools6:规则互斥
在Drools中,有的时候会出现一种情况,一个事实Fact,满足了两个规则. 比如Fact的POJO是下面的 public class Message { public static final in ...
- application、session、request、page的作用范围、Application,Session和Cookie的区别
Web应用中的JSP和servlet都是由web服务器来调用,Jsp和Servlet之间通常不会相互调用,那么Jsp和Servlet之间交换数据就要用到application.session.requ ...