javascript的隐式类型转换
首先简单了解js的typeof,会返回六种类型
即 number string boolen function object undefined 也就是六种基本数据类型
显示类型转换大概有以下几种:
Number() 转换为number类型
String() 转换为string类型
Boolean() 转换为boolean类型
等等还有toSting() paseint()等方法,需要再说一下的是parseint()
当你输入parseInt('3242sfda') 会返回3242
但是输入parseInt('sfda3242') 会返回NaN
也就是说,如果到第一个字符不是数字时,就会返回NaN,需要注意一下,网上教程也有提到过
隐式类型转换
在执行某些运算时会隐性调用Nmuber等方法即为隐式类型转换,具体如下:
+ 两侧有stirng类型时调用String()
> < >= <= == != 两侧有number类型时调用Number()
&& || ! 调用Boolean()
++/-- +/-/*/% 调用Number()
isNaN() 调用Number()
=== 不调用
以上个人感觉最重要的是前两个,+需要在说明一下
默认是调用Number(),但是它会先检测两侧是否有string,有的话就直接用String,但是
直接控制台输入 +string 会返回NaN 可以尝试在控制台输入 +'adfaa' 试试
个人学习记录,如有不到请指正
javascript的隐式类型转换的更多相关文章
- JavaScript之隐式类型转换
布尔操作符(!.&&.||) 当使用 条件判断语句(if...else) 以及 布尔操作符(!.&&.||) 时,会调用Boolean()进行隐式类型转换 转换为fal ...
- javascript的隐式类型转换(使(a==1&&a==2&&a==3) 成立)
一些团队规定禁用 == 运算符换用=== 严格相等.以工程标准衡量,== 带来的便利性抵不上其带来的成本,团队协作时候你看到别人代码中的 ==,有些时候需要判断清楚作者的代码意图是确实需要转型,还是无 ...
- 从 (a==1&&a==2&&a==3) 成立中看javascript的隐式类型转换
下面代码中 a 在什么情况下会打印 1? var a = ?; if(a == 1 && a == 2 && a == 3){ console.log(1); } 这个 ...
- 「译」JavaScript 的怪癖 1:隐式类型转换
原文:JavaScript quirk 1: implicit conversion of values 译文:「译」JavaScript 的怪癖 1:隐式类型转换 译者:justjavac 零:提要 ...
- 有趣的JavaScript隐式类型转换
JavaScript的数据类型是非常弱的(不然不会叫它做弱类型语言了)!在使用算术运算符时,运算符两边的数据类型可以是任意的,比如,一个字符串可以和数字相加.之所以不同的数据类型之间可以做运算,是因为 ...
- JavaScript 隐式类型转换
JavaScript 隐式类型转换 原文:https://blog.csdn.net/itcast_cn/article/details/82887895 · 1.1 隐式转换介绍 · 1.2 隐式转 ...
- JavaScript学习总结(二、隐式类型转换、eval())
一.(避免)隐式类型转换 console.log(false == 0); //logs true; console.log(false === 0); //logs false; conso ...
- Javascript显示和隐式类型转换
1.转换成字符串 多数的JavaScript宿主环境(比如Node.js和Chrome)都提供了全局函数toString: 与此同时Object.prototype也定义了toString方法,使得所 ...
- JavaScript显式类型转换与隐式类型转换
隐式类型转换 四则运算 判断语句 toString 在 JavaScript 中声明变量不需指定类型,对变量赋值也没有类型检查,同时还允许隐式类型转换. 这些特征说明 JavaScript 属于弱类型 ...
随机推荐
- .NetCore外国一些高质量博客分享
前言 我之前看.netcore一些问题时候,用bing搜索工具搜到了一些外国人的博客.翻看以下,有学习的价值,就分享在这里了. 个人博客 andrewlock.net 最新几篇如下,一看标题就知道很有 ...
- linux sar 命令详解(历史资源查看,如内存、CUP等等)
sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用情 ...
- leetcode — spiral-matrix-ii
import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * Source : https://o ...
- DNS服务器的搭建
更详细的dns笔记整理: http://services.linuxpanda.tech/DNS/index.html 1 DNS介绍 DNS(Domain Name System,域名系统),因特网 ...
- 【原创】C++之自定义高效的swap(1)
1 问题背景 当交换两个包含了指针成员的类,我们最想看到的是直接交换其指针.但是当我们调用std::swap标准库这个模板函数时,通常它都会复制3个指针指向的对象作为交换所用,缺乏效率.如下: ...
- vue_drf之视频接口
一.vue-video 1,安装依赖 npm install vue-video-player --save 2,main.js文件中加载组件 require('video.js/dist/video ...
- ARM 汇编指令 ADR 与 LDR 使用
简介 这两个都是伪指令:ADR 是小范围的地址读取伪指令,LDR 是大范围的读取地址伪指令.可实际使用的区别是: ADR 是将基于 PC 相对偏移的地址值或基于寄存器相对地址值读取的伪指令,而 LDR ...
- struts2_项目运行报404
1.缺少jar包,commons-lang3-3.2.jar 参考网址:https://blog.csdn.net/u013457382/article/details/50972401 2.stru ...
- Java基础IO流(一)
IO概念: 大多数应用程序都需要实现与设备之间的数据传输,例如键盘可以输入数据,显示器可以显示程序的运行结果等.在Java中,将这种通过不同输入输出设备(键盘,内存,显示器,网络等)之间的数据传输抽象 ...
- 让MySQL查询更加高效——对查询进行重构
在优化有问题的查询时,目标应该是找到一个更优的方法获得实际需要的结果,而不是一定总是要求从MySQL获取一模一样的结果集 一个复杂查询还是多个简单查询 设计查询的时候一定需要考虑的问题就是,是否需要将 ...