重新认识JavaScript里的数据类型
一、序
数据类型,平时天天在用,今日闲暇便重新阅读了JavaScript数据类型这块,才发现平时用的时候有许些错误和不足,且对此深有感悟,便写下这篇文章加以巩固基础知识并有空翻出来温故而知新。
二、概述
ECMAScript中有5种基本数据类型:Undefined、Null、Boolean、Number、String;当然还有一种复杂数据类型:Object,Object本质上是有一组无序的名值对组成的,如对象,数组等;
三、数据类型
3.1:Undefined
Undefined类型只有一个值,即特殊的undefined(未定义)。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。如下代码所示:
<script>
function testUndefined() {
var msg;
console.log(msg);//undefined console.log(msg == undefined);//true
}
testUndefined();
</script>
通过这段代码我们能看到控制台的输出: ,即我们可以把undefined(未定义)翻译为未初始化。另外通过对未初始化的变量执行typeof操作符会返回undefined值,并对未申明的变量
执行typeof操作符也是返回undefined值,所以平时我们可以通过typeof来判断该变量是否初始化或是否申明了变量;
3.2 Null类型
Null类型也是只有一个值的数据类型,即特殊的null。通过对面向对象的学习,我们都知道这表示一个空对象指针,平时在写C#代码的时候,也偶尔会遇到这个,如果没有做null判断而使用该对象,就会抛出null异常。既然它为空对象指针,在使用
typeof来检测的时候就会返回"object"。 如下代码所示:
<script>
function testNull() {
var obj = null;
console.log(typeof (obj)) // object;
}
testNull()
</script>
在控制台里就能看到输出的是"object",所以平时使用的时候应该先判断是否为null。另外undefined值是派生自null值的,所以null==undefined;
3.3 Boolean类型
Boolean类型只有2个值:true、false;这2值是要区分大小写的,所以说True和False都不算是Boolean值,平时用这个类型有时候会搞错,代码没看出来,才通过调试的时候才发现,也是醉了。要将一个值转化其对应的Boolean值,可以调用转型函数
Boolean()。下表给出了对各种数据类型转化后得出的Boolean值;
数据类型 | 转化为true的值 | 转化为false的值 |
Boolean | true | false |
String | 任何非空字符串 | 空字符串 |
Number | 任何非零数值 | 0和NaN |
Object | 任何对象 | null |
Undefined | 因为Undefined只有个值,所以没有 | undefined |
3.4 Number类型
Number类型就是我平时用到的整数和浮点数。其中整数有十进制、八进制、十六进制。除了十进制以为,其他进制得在第一位有标识;如八进制是0,然后后面八进制的序列数(0~7),十六进制必须是0x,后跟任何十六进制数字(0~9及A-F);
下面写几组来加深印象;
var num1=10; //十进制整数
var num2=010;//八进制的8
var num3=0xA; //十六机制的10
3.5 String类型
String类型用于表示由零个或多个Unicode字符组成的字符序列;可以由双引号和单引号来表示,前后需统一,如下代码:
var str1="hello world";
var str2='hello world';
String类型包含一些特殊的字符串,也叫转义序列,如下表所示:
字符串 | 含义 |
\n | 换行 |
\t | 制表 |
\b | 退格 |
\r | 回车 |
\f | 换页,将当前位置移动下页开头 |
\\ | 斜杠 |
\' | 单引号 |
\” | 双引号 |
3.6 Object类型
Object其实就是一组数据和功能的集合,对象可以通过new来创建。这个和C#的语法很像,也经常用来做封装用。
四、结语
现在准备去跑步,每天坚持锻炼,身体是革命的本钱。
重新认识JavaScript里的数据类型的更多相关文章
- JavaScript 中的数据类型
Javascript中的数据类型有以下几种情况: 基本类型:string,number,boolean 特殊类型:undefined,null 引用类型:Object,Function,Date,Ar ...
- JavaScript中基本数据类型和引用数据类型的区别
1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变 ...
- 细说 JavaScript 七种数据类型
在 JavaScript 规范中,共定义了七种数据类型,分为 “基本类型” 和 “引用类型” 两大类,如下所示: 基本类型:String.Number.Boolean.Symbol.Undefined ...
- JavaScript 七种数据类型
在 JavaScript 规范中,共定义了七种数据类型,分为 “基本类型” 和 “引用类型” 两大类,如下所示: 基本类型:String.Number.Boolean.Symbol.Undefined ...
- JavaScript中基本数据类型和引用数据类型的区别(栈——堆)
JavaScript中基本数据类型和引用数据类型的区别 1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据 ...
- 面试说:聊聊JavaScript中的数据类型
前言 请讲下 JavaScript 中的数据类型? 前端面试中,估计大家都被这么问过. 答:Javascript 中的数据类型包括原始类型和引用类型.其中原始类型包括 null.undefined.b ...
- javascript里for循环的一些事情
今天在给一个学妹调她的代码BUG时,她的问题就是在一个for循环里不清楚流程的具体流向,所以导致了页面怎么调都是有问题,嗯确实你如果不清楚语句流向很轻易就会出问题,所以说for循环不会用或者说用的不恰 ...
- javaScript中的数据类型
一.综述 javaScript中的数据类型分为两类: 简单类型:Boolean,Number,String 引用类型:Object 其他:undefined代表变量没有初始化,null代表引用类型为空 ...
- Javascript中的数据类型之旅
虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number.String.Boolean.Object.Udefined.Null.其中,Object属于复杂数据类型, ...
随机推荐
- 前端跨域方案-跨域请求代理(node服务)
前端开发人员在本地搭建node服务,调用接口首先走本地服务,然后转发到api站点,node服务代码如下: var express = require('express'), request = req ...
- 每天一个Linux命令(10)--cat命令
--首先,恭喜你,这是第十个命令啦. --为啥第十个就要恭喜?没啥特别呀? --因为逢十进一啊! cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或 ...
- 第33篇 js 常用简单的写法
1.取整 取整可以使用'~~'相当于Math.floor() ~~1.5=1; 2.判断为空或者undefine时赋一个自定义的值 var obj={a:"111",b:" ...
- 基于fiddler的APP抓包及服务端模拟
在HTTP接口的测试过程中,一般我们会按照如下的步骤进行: 1)测试环境的准备 2)HTTP消息体的构造 3)HTTP消息的发送及断言 如果我们可以拿到项目组的接口文档,并且HTTP后台服务是可以工作 ...
- 你真的了解volatile吗,关于volatile的那些事
很早就接触了volatile,但是并没有特别深入的去研究她,只有一个朦胧的概念,就是觉得 用她来解决可见性的,但可见性又是什么呢? 最近经过查阅各种资料,并结合自己的思考和实践,对volatile有了 ...
- WeMall微信商城源码插件代金券部分代码
WeMall微信商城源码插件Coupon代金券代码是用于商业推广的比较有效的方式,分享了部分比较重要的代码,供技术员学习参考 AdminController.class.php <?php na ...
- spring mvc中的拦截器小结 .
在spring mvc中,拦截器其实比较简单了,下面简单小结并demo下. preHandle:预处理回调方法,实现处理器的预处理(如登录检查),第三个参数为响应的处理器(如我们上一章的Control ...
- ORM-Dapper学习<二>
Dapper的简介 Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的.Dapper只有一个代码文件,完全开源,你 ...
- vim 括号自动补全
来源:http://www.cnblogs.com/huanlei/archive/2012/04/02/2430153.html 有时要重新配置vim 的,所以收藏了: inoremap ( ()& ...
- css布局与盒子模型
一. 盒子模型 注: 1.红色为border; 2.背景应用于内容.内边距.边框组成的区域: 3.Width和height指的是内容区域的高度和宽度. 边框属性: 1. padding属性:( ...