美文网首页
基本数据类型

基本数据类型

作者: 情的信仰 | 来源:发表于2018-01-17 21:16 被阅读0次

大家好,我是IT修真院的学员,一枚正直纯洁善良的web前端程序员

今天给大家分享一下基本数据类型?

1.背景介绍

JavaScript是一种弱类型或者说动态语言。就是不用提前声明变量的类型, 在程序运行过程中,类型会被自动确定。这也意味着你可以使用同一个变量保存不同类型的数据

2.知识剖析

js基本数据类型有哪些?

ECMAScript中有5中简单数据类型(也称为基本数据类型): Undefined、Null、Boolean、Number和String。 还有1中复杂的数据类型————Object,Object本质上是由一组无序的名值对组成的。

typeof 操作符

由于js中的变量是松散类型的,所以它提供了一种检测当前变量的数据类型的方法,就是typeof关键字. 通过typeof关键字,对这5种数据类型会返回下面的值(以字符串形式显示)

undefined ---------- 如果值未定义 Undefined

boolean ---------- 如果这个值是布尔值 Boolean

string ---------- 如果这个值是字符串 String

number ---------- 如果这个值是数值类型 Number

object ---------- 如果这个值是对象或null Object

需要注意的是typeof null返回为object,因为特殊值null被认为是一个空的对象引用。

1. Undefined

Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined

var a;

alert(a==undefined);//true

这个例子只声明了变量a,但并没有对它进行初始化。比较这个变量与undefined字面量,表明它们是相等的

var a=undefined;

alert(a==undefined);//true

这个例子使用undefined值显示初始化了变量a,但是没有必要这么做,因为未经初始化的值默认就会取得undefined值

不过包含undefined值的变量与未定义的变量还是不一样的

var a=;//这个变量声明之后默认取得了undefined值

//下面这个变量并没有声明

//var age

alert(a);  //"undefined"

alert(age);  //产生错误

第一个警告框会显示a的值,即"undefined";第二个警告框因为传递alert()函数的是没有声明的变量age所以会出现一个错误

对没有初始化的变量执行typeof操作符会返回undefined值,而对没有声明的变量执行typeof操作符也会返回undefined值

var a=;//这个变量声明之后默认取得了undefined值

//下面这个变量并没有声明

//var age

alert(typeof a);  //"undefined"

alert(typeof age);  //"undefined"

2.null

Null类型是第二个只有一个值的数据类型,这个特殊的值是null。从逻辑角度来看,null值表示一个空对象指针, 而这也正是使用typeof操作符检测null时会返回object的原因。

var car=null;

alert(typeof car);  //"object"

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。这样一来, 只要直接检测null值就可以知道相应的变量是否已经保存了一个对象的引用了。

if (car !=null){

//对car对象执行某些操作

}

实际上undefined值是派生自null值的,因此ECMA-262规定对它们的相等性测试要返回true

alert(null==undefined);//true

位于null和undefined之间的相等操作符"=="总是返回true,不过需要注意的是这个操作符醋鱼比较的目的会转换其操作数

只要意在保存对象的变量还没有真正保存对象,就应该明确的让该变量保存null值。不仅可以体现null作为空对象指针的惯例还有助于进一步区分null和undefined

3.Boolean

该类型只有两个字面值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false也不一定等于0。

var found=true;

var lost=false;

需要注意的是Boolean类型的字面值true和false是区分大小写的

虽然Boolean类型的字面值只有两个,但JavaScript中所有类型的值都有与这两个Boolean值等价的值。 要将一个值转换为其对应的Boolean值,可以调用类型转换函数Boolean(),

var message="Hello world";

var messageAsBoolean=Boolean(message);

在这个例子中,字符串message被转换成了一个Boolean值,该值被保存在messageAsBoolean变量中。 可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean值。至于返回的这个值是true还是false, 取决于要转换值的数据类型及其实际值

数据类型转换为true的值转换为false的值

Booleantruefalse

String任何非空字符串..(空字符串)

Number任何非零数字值(包括无穷大)0和NaN

Object任何对象null

Undefined不适用undefined

这些转换规则对理解流控制语句(如if语句)自动执行相应的Boolean转换非常重要

var message="Hello world";

if (message){

alert("Value is true");

}

运行这个示例,就会显示一个警告框,因为字符串message被自动转换成了对应的Boolean值(true)。 由于存在这种自动执行的Boolean转换,因此确切地知道在流控制语句中使用的是什么变量至关重要

4.Number

这种类型用来表示整数和浮点数值,还有一种特殊的数值,即NaN(非数值 Not a Number)。 这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。 例如,在其他编程语言中,任何数值除以0都会导致错误,从而停止代码执行。但在JavaScript中, 任何数值除以0会返回NaN,因此不会影响其他代码的执行。

NaN本身有两个非同寻常的特点。首先,任何涉及NaN的操作(例如NaN/10)都会返回NaN, 这个特点在多步计算中有可能导致问题。其次,NaN与任何值都不相等,包括NaN本身。

alert(NaN == NaN);    //false

5.String

String类型用于表示由零或多个16位Unicode字符组成的字符序列, 即字符串。字符串可以由单引号(')或双引号(")表示。

String类型的特殊性

string类型有些特殊,因为字符串具有可变的大小,所以显然它不能被直接存储在具有固定大小的变量中。 由于效率的原因,我们希望JS只复制对字符串的引用,而不是字符串的内容。但是另一方面, 字符串在许多方面都和基本类型的表现相似,而字符串是不可变的这一事实(即没法改变一个字符串值的内容), 因此可以将字符串看成行为与基本类型相似的不可变引用类型

Boolean、Number、String 这三个是Javascript中的基本包装类型,也就是这三个其实是一个构造函数, 他们是Function的实例,是引用类型,这里的String指的是String这个构造函数,因为Javascript是松散类型的。

var name = String("jwy");

alert(typeof name);//"object"

var author = "Tom";

alert(typeof name);//"string"

注意,typeof 变量 如果值是"string" 的话,也就是这个变量是字符串,在Javascript中,字符串是基本类型,而在C#或Java中, 字符串是引用类型,但是Javascript中的String是引用类型,因为它是Javascript中定义好的基本包装类型,在C#中, String跟string其实是一样的。

6.Object

ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过new操作符后跟要创建的对象类型的名称来创建。 而创建Object类型的实例并为其添加属性和方法,就可以创建自定义对象

var o=new Object();

在ECMAScript中Object类型是所有它的实例的基础, 也就是说Object类型所具有的任何属性和方法也同样存在于更具体的对象中

Object常用方法和属性

3.常见问题

问题一:如何判断数据类型

问题二:常用数据转换方法

4.解决方法

一:使用typeof操作符。typeof操作符的操作数可以是变量也可以是数值字面量。需要注意的是 调用typeof null会返回"object",因为null被认为是一个空的对象引用。

二:转数值:parseInt() 和 parseFloat()。

转字符串: .toString()

强制转换:访问数据内部内容,并将符合格式的内容进行转换

Boolean(value) - 把给定的值转换成 Boolean 型;

Number(value) - 把给定的值转换成数字(可以是整数或浮点数);

String(value) - 把给定的值转换成字符串;

5.扩展思考

6.参考文献

ECMAScript原始类型

ECMAScript引用类型

ECMAScript类型转换

Javascript的三个组成部分

7.更多讨论

数组类型属于哪种类型?

var a=[];

alert(typeof a) //Object

问题:

1.数据类型能不能相互转换

答:可以

2.什么是引用类型

答:引用类型就是对象

3.引用类型和基本类型的区别

答:请点击

相关文章

  • C++基础

    1.C的基本数据类型 java基本数据类型 C基本数据类型 基本数据类型所占字...

  • 2019年安卓面试题--------Java 基础篇

    java 的基本数据类型 java的数据类型分为基本 数据类型和 引用数据类型基本数据类型: byte sho...

  • Java基本数据类型转换

    一:Java的基本数据类型和引用数据类型 1:基本数据类型 2:引用数据类型 二:基本数据的类型转换 基本数据类型...

  • Hive-3.1.2(三)数据类型

    常用的基本数据类型 基本数据类型所占字节intbooleanfloatdoublestring 复杂数据类型 基本...

  • Kotlin学习第一天

    打印HelloWorld 基本数据类型代码展示: kotlin只有基本数据类型 没有包装数据类型 基本数据类型范...

  • java数据类型(八种基本数据类型+三种引用类型)

    数据类型分类 java数据类型分为基本数据类型和引用数据类型 基本数据类型 基本数据类型包括4个分类,分配的存储空...

  • JS数据类型判断

    js中可以通过typeof来判断基本的数据类型。 数据类型 js的数据类型分为基本数据类型和引用数据类型,基本数据...

  • Java基础数据类型和引用类型的区别

    一、数据类型 Java中的数据类型分为两大类,基本数据类型和引用数据类型。 1、基本数据类型 基本数据类型只有8种...

  • ES5知识点整理

    基本语法 基本语法包括数据类型,操作符,语句,函数 数据类型 5种简单数据类型(基本数据类型)Undefined、...

  • 深入理解JS的数据类型

    js数据类型主要分为基本数据类型和引用数据类型 基本数据类型和引用数据类型的区别:基本数据类型是对值得引用,引用数...

网友评论

      本文标题:基本数据类型

      本文链接:https://www.haomeiwen.com/subject/zbnnnxtx.html