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之基本数据类型之间的显示转换和隐式转换的更多相关文章

  1. JS的类型转换,强制转换和隐式转换

    JS的类型转换 1.强制转换 通过String(),Number(),Boolean()函数强制转换 var str=123; var str1='123'; console.log(typeof s ...

  2. JavaScript学习笔记——数据类型强制转换和隐式转换

    javascript数据类型强制转换 一.转换为数值类型 Number(参数) 把任何的类型转换为数值类型 A.如果是布尔值,false为0,true为1 B.如果是数字,转换成为本身.将无意义的后导 ...

  3. c# 强制转换, 隐式转换, 显式转换

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  4. scala中隐式转换之隐式转换调用类中本不存在的方法

    /** * Created by root * Description : 隐式转换调用类中本不存在的方法 */ class Person(name : String){ def getPersonN ...

  5. 【java】学习路线1-类型转换、隐式转换、强制转换

    /**文档注释,这里是一段文章一般放在类的外面*/public class HelloWorld{    //这个是注释的文本    public static void main(String[] ...

  6. C语言数据类型的转换(隐式转换)

    算术运算符中的转换规则: double ←── float 高↑long↑unsigned↑int ←── char,short 低 注意: 图中横向箭头表示必须的转换,如两个float型数参加运算, ...

  7. C#隐式转换和显示转换举例--C#基础

    高精度的数据类型转换为低精度的数据类型是显示转换,低精度的转换为高精度的是隐式转换. 温馨提示:不能说强制类型转换是从低精度到高精度. int a=666;float b=(float)a: 由a到b ...

  8. 显示转换explicit和隐式转换implicit

    用户自定义的显示转换和隐式转换 显式转换implicit关键字告诉编译器,在源代码中不必做显示的转型就可以产生调用转换操作符方法的代码. 隐式转换implicit关键字告诉编译器只有当源代码中指定了显 ...

  9. js隐式转换

    JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object.object是引用类型,其它的五种是基本类型或者是原始类型.我们可 ...

随机推荐

  1. elasticsearch索引查询,日志搜素

    索引查询 http://10.199.137.115:9200/_cat/indices?format=json 返回json字符串的索引状态 增加索引名称过滤 http://10.199.137.1 ...

  2. hihocoder #1039 : 字符消除 ( 字符串处理类 ) 好久之前做的题目,具体的算法代码中阅读吧

    #1039 : 字符消除 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在玩一个字符消除游戏.给定一个只包含大写字母"ABC"的字符串s,消 ...

  3. YTU 2442: C++习题 矩阵求和--重载运算符

    2442: C++习题 矩阵求和--重载运算符 时间限制: 1 Sec  内存限制: 128 MB 提交: 1457  解决: 565 题目描述 有两个矩阵a和b,均为2行3列.求两个矩阵之和.重载运 ...

  4. 基于Vuejs的搜索匹配功能

    最近一直在看vue,查了很多资料,看了很多文档和博客,大概半知半解了,然后利用所理解的知识写了一个简单的搜索匹配功能. 大概长这个样子:   <!DOCTYPE html> <htm ...

  5. java android 将 List中元素互换位置

    很多时候我要对List中的元素调换位置,这时候可以用如下代码,意思是将data中的index1与index2元素互换位置 //data 为List Collections.swap(data,inde ...

  6. receive和process的过程

    (一) receive最终在fuse_kern_chan.c中的fuse_kern_chan_receive函数实现,使用系统调用读取 res = read(fuse_chan_fd(ch), buf ...

  7. VC++静态连接库

    目录 第1章静态连接库    1 1.1 同名函数的选择    1 1.2 模块合并    2 1.2.1 模块替换    4 1.3 内联函数    4 第1章静态连接库 静态连接库与动态连接库一样 ...

  8. [Selenium] Selenium 疑难杂症

    1. jsclick 也不管用 Actions action = new Actions(driver); WebElement theRow = page.getInvisibleElement() ...

  9. Python Web开发最难懂的WSGI协议,到底包含哪些内容?

    原文出处: PythonScientists 我想大部分Python开发者最先接触到的方向是WEB方向(因为总是有开发者希望马上给自己做个博客出来,例如我),既然是WEB,免不了接触到一些WEB框架, ...

  10. JS按字节截取字符长度实例

    处理过长的字符串,截取并添加省略号 * 注:半角长度为1,全角长度为2 *  * pStr:字符串 * pLen:截取长度 *  * return: 截取后的字符串 * 代码如下: function ...