javascript基本类型及类型转换
每种语言都有自己的基本类型,javascript也不例外。在javascript中有五大基本类型,分别是number,string,boolean,null,undefined。其他不属于这五种基本类型的都是对象,有时候null也h是对象的一种。
一、基本类型介绍
可以通过typeof来确定是哪种类型。
number包括基本的数字,Infinity,unInfinity,NaN。其中NaN比较特殊,在一个不能做运算的时候做了运算就会得到NaN的结果,例如1*'abc'。
string几乎所有的语言都有的类型,但是实现都不一样。
boolean也是很常见的一种基本类型,只有两个值true和false。
null其实就是空
undefined指的是未定义的
二、类型转换
任何语言都可以进行类型转换。javascript特殊的一点是她回自动做一些类型转换,这样做的好处是开发者不用做一些强制的类型转换,但是这个特性也是被视为javascript诟病之一,很多人认为这个特性会造成一些意想不到的错误。当然我觉得只要掌握好类型转换的特点和细节,就能够趋利避害。
说几点在类型转换中容易出错的地方。
在做+操作时一定要注意,因为在javascript中,+既可以是数字的加法,也可以是字符串的拼接。当两个操作数之一是字符串是就会将另一个数字转换为字符串,再做字符串的拼接,例如1+'12'和'1'+12得到的都是字符串'112'。所以如果想要做数字的加法,一定要保证两个操作数都是数字,可以用Number进行强制类型转换,例如1+Number('12')。当然也可以用一些简单地转换例如1+1*'12'。但是不推荐这二种做法,因为语义不明确,会给阅读代码的人造成困惑或误解。
任何变量都可以转换为Boolean值,不是true就是false。常见的空字符串'',undefined,null,NaN,0都可以被转换为false。其他的则都是true。
我们在定义变量时,经常会这么做var a = a || 10。我们想做的是,如果a被定义了则使用a的值,没定义则赋值为10.但是经常忽略,如果a的值为0。所以这种定义方法一定要慎用。
在javascript中做等比较时有两种做法,一个是==另一个是===,对应的不等比较是!=和!==。===被称作是严格相等。两者的区别是,==会做类型转换而===不会,例如1=='1',1==true都会返回true,而1==='1',1===true则会返回false。所以在做等比较时也一定要慎重。
三、总结
作为一门弱类型语言,javascript的类型转换一方面给开发者带来了很多方便而受人们追捧,另一方面也会产生一些莫名其妙的错误而遭人谩骂。其实我觉得任何语言都是不完美的,而我们能做的就是真正精通这些可能产生误区的特性,趋利避害才是王道。
转载于:https://www.cnblogs.com/alichengyin/p/4851155.html
javascript基本类型及类型转换相关推荐
- 轻松学习JavaScript十一:JavaScript基本类型(包含类型转换)和引用类型
一值的类型 早在介绍JS的数据类型的时候就提到过基本类型和引用类型,不过在说两种类型之前,我们先来了解一下变量的 值的类型.在ECMAScript中,变量可以存在两种类型的值,即原始值和引用值. (1 ...
- JavaScript的类型、值和变量
计算机程序的运行需要对值进行操作,在编程语言中,能够表示并操作的值得类型称为数据类型.变量用来将值存储起来,变量是值得符号名称. 一.数据类型 JavaScript的数据类型可以分为两类,原生类型和对 ...
- JavaScript的类型自动转换高级玩法JSFuck
0 前言 最开始是不小心在微信公众号(程序员大咖)看到一篇JS的高逼格代码,然后通过里面的链接跳转到了JSFuck的wiki,就像顺着迷宫找宝藏的感觉,感叹JS的自动类型转换的牛逼. 1 样例 (!( ...
- java类型转换答案,在java中支持两种类型的类型转换,自动类型转换和强制类型转换。父类转化为子类需要强制转换。...
在java中支持两种类型的类型转换,自动类型转换和强制类型转换.父类转化为子类需要强制转换. 更多相关问题 计算机病毒通过()传染扩散得极快,危害最大. 当一个现象的数量由小变大,另一个现象的数量相反 ...
- 详解JavaScript变量类型判断及domReady原理 写得很好
原文:详解JavaScript变量类型判断及domReady原理 我们知道,在开发JavaScript时候,经常要判断JavaScript变量类型,此 JavaScript教程 详细介绍JS变量的判断 ...
- JavaScript对象类型Object
前言 系统学习JavaScript,由于有3年的java后端开发经验,并且有2年的JavaScript+Jquery开发经验,所以像编程语言的一些通用知识就直接跳过了,重点关注JavaScript的语 ...
- Asp.net AJAX JavaScript 基本类型扩展(7)——String 类型及其扩展
参考: JScript 语言参考 http://msdn2.microsoft.com/en-us/library/c12461ed-986a-450b-be3d-81a4d808b48b Asp. ...
- 28.精讲JavaScript数字类型,你不知道的必考点。
文章目录 JavaScript数字类型详解 前言 数字的写法 分隔符 省略的0 十六.八.二进制 toString(base) 舍入 精度 偏差 偏差现象 偏差原因 解决方法 Infinity.NaN ...
- JavaScript数组类型详解
大家好,今天我们来分享一下JavaScript数组类型 Array可以包含任何的数据类型 打开浏览器: 创建数组: var arr =[1,2,3,4,5,6,7,8,9] undefined 截图: ...
最新文章
- 【C/C++多线程编程之六】pthread互斥量
- 一个基于Mule的企业服务总线的案例(关于JMS)
- ASP.NET中常用输出JS脚本的类(改进版)
- java操作地理位置信息
- 如何维护应用程序状态
- PHP正则表达式转义符对照
- IOS之导航控制器传值
- 计算机毕业设计源码—SpringBoot+Vue疫情防控管理系统
- 自动驾驶路径规划算法学习-RRT算法及matlab实现
- 支持bt,种子,torrent的离线下载网页版工具!
- 惨兮兮解决mysql安装坑
- 由 Apache Kylin 组建的 Kyligence 公司获得数百万美元的天使轮投资
- 精通Matlab数字图像处理与识别nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
- 微信开放标签wx-open-launch-app
- 基于Springboot搭建个人博客 (学习笔记)
- 理解Play框架线程池
- 2023 年的 Web Worker 项目实践
- 奶爸日记12 - 小鱼儿
- 【Vue知识点- No2.】vue脚手架、基础API
- Winform ERP系统 漂亮图标下载网站|C/S框架网
热门文章
- java什么叫实例化_在JAVA中实例化的确切含义是什么
- java数据结构教程_Java数据结构
- 福昕pdf编辑器 android,机PDF编辑器安卓/iOS哪家强?职场达人都在用
- @value 注入静态属性_SpringBoot使用@Value读取属性值
- 低头是家和月光,抬头是车和远方
- 基于TLD2331完成动态LED显示驱动
- 疑邻盗斧 - 杭电节能信标限流争论
- 利用AVR单片机 专用下载 USBtinyISP对Arduino UNO下载程序
- 拉格朗日、傅里叶、黎曼、柯西、狄利克雷、勒贝格杨、拉贝泰勒,这首诗都包括全了
- BTN8982基本测试