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是引用类型,其它的五种是基本类型或者是原始类型.我们可 ...
随机推荐
- (linux)wake_lock机制
Android的休眠唤醒主要基于wake_lock机制,只要系统中存在任一有效的wake_lock,系统就不能进入深度休眠,但可以进行设备的浅度休眠操作.wake_lock一般在关闭lcd.tp但 ...
- POJ1651 Multiplication Puzzle —— DP 最优矩阵链乘 区间DP
题目链接:https://vjudge.net/problem/POJ-1651 Multiplication Puzzle Time Limit: 1000MS Memory Limit: 65 ...
- mpvue——实现点击数组内的某一元素进行置顶(排序第一)操作
前言 其实很简单只是用了js的几个函数 substr unshift splice 完整代码 | mpvue模仿QQ 代码 思路很简单,获取当前元素下标然后通过unshift函数将该值插入到数组第一位 ...
- IntelliJ IDEA 2017 反向代理工具新方法激活
来源:http://blog.lanyus.com/archives/317.html 反向代理工具, 可用于激活JRebel (win64) 1.点击进入 https://github.com/i ...
- PHP加密方式。 base!base!base!
PHP中的加密方式有如下几种 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str -- 原始字符串. ...
- 【selenium】常见问题
1鼠标变粗:setting→1.打开设置 点击 plugins 输入ideavim 把 这个勾去掉!这个是插件的配置问题. 2.editor->appearance 去掉 use bloc ...
- Linux Bash 提示符的一些骚年操作
当你在 Linux 环境下打开一个 Shell 终端时,会看到命令行中出现了类似下面的一个 Bash 提示符: 百牛信息技术bainiu.ltd整理发布于博客园[user@$host ~]$1[use ...
- Intelidea右键新建选项没有Java class选项
Intelidea创建好项目之后,右键新建Java class的时候发现没有改选项,只有以下几个选项 把sec目录设为源码目录,首先打开Project Structure
- javascript switch..... case
switch(条件表达式) { case 常量: { 语句a; } break; case 常量: { 语句b; } break; case 常量: { 语句c; } break; ... case ...
- Meta标签中的format-detection属性及含义(转)
一.Meta标签中的format-detection属性及含义 意为:格式检测 或许你会有这样的经历:当你在制作手机端的页面中,点击了没有加任何链接的格式的数字时,这时手机会进行自动拔号提示操作! 禁 ...