每种语言都有自己的基本类型,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基本类型及类型转换相关推荐

  1. 轻松学习JavaScript十一:JavaScript基本类型(包含类型转换)和引用类型

    一值的类型 早在介绍JS的数据类型的时候就提到过基本类型和引用类型,不过在说两种类型之前,我们先来了解一下变量的 值的类型.在ECMAScript中,变量可以存在两种类型的值,即原始值和引用值. (1 ...

  2. JavaScript的类型、值和变量

    计算机程序的运行需要对值进行操作,在编程语言中,能够表示并操作的值得类型称为数据类型.变量用来将值存储起来,变量是值得符号名称. 一.数据类型 JavaScript的数据类型可以分为两类,原生类型和对 ...

  3. JavaScript的类型自动转换高级玩法JSFuck

    0 前言 最开始是不小心在微信公众号(程序员大咖)看到一篇JS的高逼格代码,然后通过里面的链接跳转到了JSFuck的wiki,就像顺着迷宫找宝藏的感觉,感叹JS的自动类型转换的牛逼. 1 样例 (!( ...

  4. java类型转换答案,在java中支持两种类型的类型转换,自动类型转换和强制类型转换。父类转化为子类需要强制转换。...

    在java中支持两种类型的类型转换,自动类型转换和强制类型转换.父类转化为子类需要强制转换. 更多相关问题 计算机病毒通过()传染扩散得极快,危害最大. 当一个现象的数量由小变大,另一个现象的数量相反 ...

  5. 详解JavaScript变量类型判断及domReady原理 写得很好

    原文:详解JavaScript变量类型判断及domReady原理 我们知道,在开发JavaScript时候,经常要判断JavaScript变量类型,此 JavaScript教程 详细介绍JS变量的判断 ...

  6. JavaScript对象类型Object

    前言 系统学习JavaScript,由于有3年的java后端开发经验,并且有2年的JavaScript+Jquery开发经验,所以像编程语言的一些通用知识就直接跳过了,重点关注JavaScript的语 ...

  7. Asp.net AJAX JavaScript 基本类型扩展(7)——String 类型及其扩展

    参考: JScript  语言参考 http://msdn2.microsoft.com/en-us/library/c12461ed-986a-450b-be3d-81a4d808b48b Asp. ...

  8. 28.精讲JavaScript数字类型,你不知道的必考点。

    文章目录 JavaScript数字类型详解 前言 数字的写法 分隔符 省略的0 十六.八.二进制 toString(base) 舍入 精度 偏差 偏差现象 偏差原因 解决方法 Infinity.NaN ...

  9. JavaScript数组类型详解

    大家好,今天我们来分享一下JavaScript数组类型 Array可以包含任何的数据类型 打开浏览器: 创建数组: var arr =[1,2,3,4,5,6,7,8,9] undefined 截图: ...

最新文章

  1. 【C/C++多线程编程之六】pthread互斥量
  2. 一个基于Mule的企业服务总线的案例(关于JMS)
  3. ASP.NET中常用输出JS脚本的类(改进版)
  4. java操作地理位置信息
  5. 如何维护应用程序状态
  6. PHP正则表达式转义符对照
  7. IOS之导航控制器传值
  8. 计算机毕业设计源码—SpringBoot+Vue疫情防控管理系统
  9. 自动驾驶路径规划算法学习-RRT算法及matlab实现
  10. 支持bt,种子,torrent的离线下载网页版工具!
  11. 惨兮兮解决mysql安装坑
  12. 由 Apache Kylin 组建的 Kyligence 公司获得数百万美元的天使轮投资
  13. 精通Matlab数字图像处理与识别nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
  14. 微信开放标签wx-open-launch-app
  15. 基于Springboot搭建个人博客 (学习笔记)
  16. 理解Play框架线程池
  17. 2023 年的 Web Worker 项目实践
  18. 奶爸日记12 - 小鱼儿
  19. 【Vue知识点- No2.】vue脚手架、基础API
  20. Winform ERP系统 漂亮图标下载网站|C/S框架网

热门文章

  1. java什么叫实例化_在JAVA中实例化的确切含义是什么
  2. java数据结构教程_Java数据结构
  3. 福昕pdf编辑器 android,机PDF编辑器安卓/iOS哪家强?职场达人都在用
  4. @value 注入静态属性_SpringBoot使用@Value读取属性值
  5. 低头是家和月光,抬头是车和远方
  6. 基于TLD2331完成动态LED显示驱动
  7. 疑邻盗斧 - 杭电节能信标限流争论
  8. 利用AVR单片机 专用下载 USBtinyISP对Arduino UNO下载程序
  9. 拉格朗日、傅里叶、黎曼、柯西、狄利克雷、勒贝格杨、拉贝泰勒,这首诗都包括全了
  10. BTN8982基本测试