`
SophiaHzy
  • 浏览: 12186 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

由后端转向前端的js扫盲篇-数据类型

阅读更多

写在前面:   

    最早对javaScript的理解与应用只是停留在简单的表单验证与写简单的小游戏,直到今年戏剧化的被转入前端工作中。对javaScript的需求随之扩大,至此才认识到自己的js技能实在浅薄。

    断续在对js做一个系列的学习,主要是根据自己认为模糊的点与没了解过的知识在网络及书中寻求探索的过程。所以该文可能不是所谓的javaScript入门级,我将它们定位为:由后端转向前端的js扫盲篇。

 

    这一篇是 javaScript基础-数据类型,即: ECMAScript 值类型(原始类型)、 引用类型(即对象)。

>类型说明<

---值类型---

定义:在ECMAScript中,原始类型为undefined、null、number、boolean、string该5种。

存储方式:存储在栈(stack)中的简单数据段(它们的值直接存储在变量访问的位置),占据空间固定。

特征:(1).原始类型比较值时,是值(字面量)比较;(2).原始类型无法添加属性。

 

以下分别说明5种类型的值:

undefined类型

该类型只有一个值,就是它本身。undefined表示缺少值,即此处应该有一个值,但还未定义。典型用法如下:

阮一峰的网络日志 写道
(1)变量被声明了,但没有赋值时,就等于undefined。
(2)  调用函数时,应该提供的参数没有提供,该参数等于undefined。
(3)对象没有赋值的属性,该属性的值为undefined。
(4)函数没有返回值时,默认返回undefined。

(1)变量被声明了,但没有赋值时,就等于undefined。

(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

(3)对象没有赋值的属性,该属性的值为undefined。

(4)函数没有返回值时,默认返回undefined。

注:在最新的js规范严格模式中,未使用var创建的变量,会抛出错误。此处再后续章节中会引例说明。

 

null类型

该类型也只有一个值,就是自己,即字面量。null表示没有对象,即此处不应该有值。典型用法如下:

阮一峰的网络日志 写道
(1) 作为函数的参数,表示该函数的参数不是对象。
(2) 作为对象原型链的终点。

Object.getPrototypeOf(Object.prototype)

// null

 

number类型

ECMA-262最特殊类型,可表示64位整数也可表示32为浮点数 。

如是浮点数就必须包含小数点及小数点后一位数(如1.0)。

 

boolean类型

该类型的值只有true/false。

 

字符串类型

没有固定大小。

 

typeof运算符

在实际应用中,我们常常需要知道原始值的具体类型。在js中,可用typeof运算符来区分。用法如下:

var nCount=21.0;
alert(typeof nCount); //number

注:typeof对所有引用类型都返回Object。

typeof还可用在判断变量是否存在。

>不使用typeof的情况,抛出异常。

if(nCount==="undefined"){
        alert('msg');
}


 >使用typeof判断,弹出字符串msg。

if(typeof nCount==="undefined"){
        alert('msg');
}

 

---引用类型---

定义:1.原始值的封装类 Boolean、String、Number 2.用字面量创建的对象;构造函数建

存储方式:存储在堆(heap)中的对象(存储的值是一个指针,指向对象的内存处)

特征:1.对象可变(增加属性等) 2.每个对象都有唯一标识,比较时是通过引用比较(只有内存地址相同) 3.变量保存了对象的引用。

 

instanceof

在使用引用类型时,通常需要判断变量是否为某对象的实例。即判断是否存在对象中。使用时需明确指定类型,如:

if('abc' instanceof string){}

 注:instanceof对所有原始值都返回false

 

>类型转换<

转换为包装类型:new String("abc")

转换为原始类型:new String("abc").valueOf()

尽管是原始类型 number、Boolean、string都有toString()方法,string为伪对象,也存在该方法。

number类型的转换存在整数与浮点数,且存在进制转换,此处不赘述。

 

强制类型转换

ECMAScript中有三种强制类型转换,结合w3school与实践得出如下结论:

 

(1)Boolean(value) - 把给定的值转换成 Boolean 型
--当要转换的值是至少有一个字符的字符串、非0数字或对象时,Boolean()函数将返回true。如果该值是空字符串、数字0、undefined或null,它将返回false

(2)Number(value) - 把给定的值转换成数字(可以是整数或浮点数)
--输入正确值(如‘4.4.1’则返回NaN)时会根据实际判断调用parseInt还是parseFloat

(3)String(value) - 把给定的值转换成字符串
--同toString() 区别在于null是作为string类型还是null原始值

 此处对第一种Boolean转换写例说明

var oFalseObject = new Boolean(false);
var bResult = oFalseObject && true;	//输出 true
//此时比较的是oFalseObject,而不是它的值.由于Boolean表达式将false默认为true,故此处为true

 

强制转换成字符串和调用 toString() 方法的唯一不同之处在于,对 null 和 undefined 值强制类型转换可以生成字符串而不引发错误:

var s1 = String(null);//"null"  
var oNull = null;  
var s2 = oNull.toString(); //Uncaught TypeError: Cannot read property 'toString' of null 

 

以上,Boolean与Number尽量少用,避免类似未知错误。

 

---------------------------------分割线---------------------------------------------------- 

本文主要参考:阮一峰的网络日志;W3School与网络。主要作为个人学习记录回顾。

  • 描述: error typeof
  • 大小: 8.1 KB
分享到:
评论

相关推荐

    01-扫盲篇-渗透入坑专业术语知多少.md

    01-扫盲篇-渗透入坑专业术语知多少.md

    诺基亚手机扫盲贴--如何鉴别NOkia品质

    诺基亚手机扫盲贴--如何鉴别NOkia手机品质

    老王Python基础+进阶+项目篇(高清无密)

    基础篇5-python基本数据类型讲解1.1 基础篇6-福利课-python基本数据类型讲解1.2 基础篇7-python基本数据类型讲解1.3 基础篇8-python基本数据类型习题解答 基础篇9-python基本数据结构-列表 基础篇10-python基本数据...

    matlab扫盲--任.doc

    MATLAB 是一种强大的数学软件,由美国MathWorks公司开发,主要功能包括数值计算、符号计算和图形可视化。MATLAB 的名称来源于"Matrix Laboratory",它以其丰富的运算符和库函数,简洁的语言结构,高效的编程效率而...

    扫盲队伍-报警讲义

    报警系统扫盲

    《零基础学习软件测试》视频教程-扫盲篇

    资源名称:《零基础学习软件测试》视频教程-扫盲篇资源目录:【】《零基础学习软件测试》之软件测试知识扫盲篇_1【】《零基础学习软件测试》之软件测试知识扫盲篇_2【】《零基础学习软件测试》之软件测试知识扫盲篇_...

    J2EE扫盲之-揭开J2EE集群的神秘面纱

    ### J2EE扫盲之-揭开J2EE集群的神秘面纱 #### 1. 前言 随着互联网业务的迅速发展与企业信息化水平的不断提升,越来越多的关键性应用程序选择基于J2EE(Java 2 Platform, Enterprise Edition)平台进行构建。例如,...

    oracle扫盲-第一讲-创建和管理表PPT课件.ppt

    Oracle扫盲-第一讲-创建和管理表PPT课件 本资源主要讲述Oracle数据库管理系统的基本知识,包括创建和管理表的方法、数据类型、CREATE TABLE语句、数据字典等。 知识点1:数据类型 Oracle数据库中有多种数据类型,...

    电子技术扫盲资料-从基础学起

    这份“电子技术扫盲资料”旨在帮助初学者从基础开始理解并掌握电子技术的基本概念和元件。我们将深入探讨电阻、电容、电感以及二极管和三极管这五种基本电子元件。 首先,电阻是电子电路中最常见的元件,它能限制...

    大模型扫盲系列-初识大模型pdf

    大模型是指具有数千万甚至数亿参数的深度学习模型。近年来,随着计算机技术和大数据的快速发展,深度学习在各个领域取得了显著的成果,如自然语言处理,图片生成,工业数字化等。为了提高模型的性能,研究者们不断...

    电脑DIY基本知识扫盲.-.图文并茂

    总目录: 1楼:CPU类 1. ES版的CPU 2.... 3.... 4.... 5.... 6.... 7.... 8.... 9. CPU核心类型 10. CPU接口类型 ... 计算机中数据传输的方式:串行通讯和并行通讯 5. HTPC(个人家庭影院电脑) 6. ATX电源简介 7. PS的含义

    vmwareworkstation扫盲教程-虚拟网络属性详解.pdf

    在这个模式下,虚拟机连接到一个特殊的虚拟网络,由VMware Workstation的VMnet1虚拟网卡管理。虚拟机之间以及虚拟机与主机之间可以互相通信,但不能直接访问外部网络,包括互联网。这种模式常用于建立封闭的实验环境...

    汽车扫盲贴-关于汽车的基本知识

    1. **发动机类型:SOHC vs DOHC** SOHC(单顶置凸轮轴)和DOHC(双顶置凸轮轴)的区别在于气门的控制方式。DOHC由于有两个凸轮轴,能更好地控制气门开启角度,提高进气效率,适用于高转速工况,而SOHC结构简单,...

    python项目(15篇).rar

    项目简01-博客第一节 项目篇02-博客第二节 ...项目篇08-t第一节扫盲篇 项目篇09-第二节 项目篇10-o第三节 项目篇11-项目第四节 项目篇12-项目篇第五节 项目简13-第六节 项目篇14-百度爬虫 项目篇15-聊天室

    敏捷开发之Scrum扫盲篇

    **敏捷开发之Scrum扫盲篇** 敏捷开发是一种软件开发的方法论,强调适应性、灵活性和团队合作,以快速响应变化并提供高质量的产品。Scrum是敏捷开发中的一个框架,它以其高效、迭代和增量的特性深受业界欢迎。本文将...

    渗透测试 行业术语扫盲.pdf

    渗透测试 行业术语扫盲-来源-公众号-moonsec

    钻石知识扫盲篇.ppt

    钻石知识扫盲篇.ppt

    PCIe扫盲-Felix.zip

    具体描述见: https://blog.csdn.net/BjarneCpp/article/details/80370986

    PCIe扫盲系列附目录

    文章“PCIe扫盲系列附目录”是对PCIe标准的一个基础介绍,而部分内容主要通过一个Memory Read操作的例子,对PCIe总线的数据传输过程进行了详细说明。 ### PCIe总线的结构 PCIe总线结构主要分为三层:事务层...

    常用电子元件扫盲篇 电子元件基础知识

    ### 常用电子元件扫盲篇:电子元件基础知识 #### 一、三极管简介 三极管是一种重要的半导体器件,广泛应用于放大电路、开关电路等。它由两个PN结组成,通常分为NPN型和PNP型两种类型。 - **NPN型**:发射区为N型...

Global site tag (gtag.js) - Google Analytics