ECMAScript变量可能包含两种不同数据类型的值:基本类型值和引用类型值,基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象。

在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值,基本类型值有:Undefined,Null,Boolean,Number和String。这5种基本数据类型是按值访问的,因为可以操作保存在变量种的实际值

基本数据类型都是单一的值(“hello”,123)值与值之间没有任何联系,若使用基本数据类型的数据,我们所所创建的变量都是独立的,不能成为一个整体

引用类型的值是保存在内存中的对象,Javascript不允许直接访问内存中的位置,(不能直接操作对象的内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象,故引用类型的值是按引用访问的,其中引用类型有(Object,Array,RegExp,Date,Function,特殊的基本包装类型(String,Number,Boolean)以及单体内置对象(Global,Math)

基本类型

1.Number

Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字

NaN:非数字类型,两大特点:

  1. 涉及到的任何关于NaN的操作都会返回NaN
  2. NaN不等于自己

isNaN()函数用于检查其参数是否是非数字

2.String

字符串是存储字符的变量,由双引号(“”)或者单引号(‘’)表示

字符串有length属性,可以取得字符串的长度

字符串转换:转型函数String(),适用于任何数据类型(null,undefined转换后为null和undefined)

toString方法(null,undefined不适用)

3.Boolean

只有两个值,true和false

4.Undefined

只有一个值,即undefined值,使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined

5Null

只有一个值的数据类型,null值表示一个空对象的指针,使用typeof操作符检测null值会返回‘object’

6常见的引用类型

Object:带有属性和方法的特殊数据类型

Array:使用单独的变量名来存储一系列的值

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

基本类型的变量是存放在栈区的(栈区是指内存里的栈内存)

引用类型的值是同时保存在栈内存和堆内存中的对象;

基本类型的比较是值的比较

引用类型的比较是引用的比较

扩展

1.Null和Undefined的区别

Null和Undefined基本同义,只有一些细微差异,Null表示“没有对象”,即该处不应该有值

Undefined表示缺少值,此处应该有值,但是还没有定义:

  • 变量被声明了,但没有赋值时,就等于Undefined
  • 调用函数时,应提供的参数没有提供,该参数为Undefined
  • 对象没有赋值的属性,该属性为undefined
  • 函数没有返回值时,默认返回undefined

2.什么是栈内存,堆内存,两者的区别

栈内存:由程序自动向操作系统申请分配以及回收,速度快,使用方便,但程序员无法控制,若分配失败,则提示栈溢出错误,注意:const局部变量也存储在栈区内,栈区向地址减小的方向增长

堆内存:程序员向os申请一块内存,当系统收到程序的申请时,会遍历一个记录空闲内存地址的链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序,分配的速度较慢,地址不连续,容易碎片化,故由程序员申请,同时必须要程序员销毁

Javascript之基本类型和引用类型的更多相关文章

  1. [转]javascript中基本类型和引用类型的区别分析

    基本类型和引用类型 ECMAScript包含两个不同类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段:引用类型值指由多个值构成的对象.当我们把变量赋值给一个变量时,解析器首先要做的就是确 ...

  2. javascript的基本类型和引用类型

    一.基本类型和引用类型 基本的数据类型有5个:undefined,boolean,number,string,null ? 1 2 3 4 5 typeof null; //"object& ...

  3. javascript中基本类型和引用类型的区别分析

    大多数人系统学习过的程序设计语言,在这些语言的学习过程中最早学到的几个要点之一就是值类型和引用类型的区别.下面我们来看一下在 JavaScript 中基本数据类型(Primitive Types)和引 ...

  4. Javascript手记-基本类型和引用类型

    1:ecmascript包含2中不同的数据类型,基本数值类型和引用数值类型.基本数据类型是简单的数据段,引用类型是指那些可能由多个值构成的对象. 1.1:常用的基本类型:Undefined,Null, ...

  5. javascript数据基本类型和引用类型区别详解

    JavaScript基本数据类型: js基本数据类型包括:undefined,null,number,boolean,string.基本数据类型是按值访问的,就是说我们可以操作保存在变量中的实际的值. ...

  6. javascript数据基本类型和引用类型

    JavaScript基本数据类型: js基本数据类型包括:undefined,null,number,boolean,string.基本数据类型是按值访问的,就是说我们可以操作保存在变量中的实际的值. ...

  7. Javascript 关于基本类型和引用类型的个人理解

    一.基础类型 A. 基础类型有5种,Number,String,Boolean,Null,Undefined B. 基础类型没有堆的概念,堆只针对引用类型. 所有基础类型都是以key-value形式存 ...

  8. 【JavaScript】基本类型和引用类型的值、引用类型

    一.前言        接着上一篇继续记笔记 二.内容         动态的属性 var person = new Object(); person.name = "Nicholas&qu ...

  9. 《JavaScript高级程序设计》读书笔记 ---基本类型和引用类型的值

    变量.作用域和内存问题 基本类型和引用类型的值ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象.在 ...

随机推荐

  1. hive命令的执行方式

    1.通过cli直接执行 2.hive -e "hql" 如:[root@host ~]# hive -e "use gamedw;show tables" [r ...

  2. bar

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  3. Oracle函数使用

    数据格式化截取:  Trunc(data,[yyyy]) oracle的特有if判断: decode(sex, 0, '男', 1, '女') 分组排序:row_number() over(parti ...

  4. data型怎么转换格式

    data型如何转换格式01-1月   -03       如何转成   YYYY-MM-DD   的格式 本来就是date了 ------解决方案--------------------to_char ...

  5. Haskell语言学习笔记(79)lambda演算

    lambda演算 根据维基百科,lambda演算(英语:lambda calculus,λ-calculus)是一套从数学逻辑中发展,以变量绑定和替换的规则,来研究函数如何抽象化定义.函数如何被应用以 ...

  6. 【377】only one element in a tuple

    Recently I am doing the assignment of COMP9021. It is too difficult and it is about the Knight and K ...

  7. C# 简单的定时关机

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. Eclipse编译Android项目时出现的问题:Android requires compiler compliance level 5.0 or 6.0. Found '1.8' instead.

    Consle: Android requires compiler compliance level 5.0 or 6.0. Found '1.8' instead. Please use Andro ...

  9. java axis2 webservice

    http://clq9761.iteye.com/blog/976029/ 这篇文章写的是最全的,也是最好的.无须下一步下一步操作来操作去,写类直接调试,非常好!

  10. powerdesiner技巧

    1.name和code同步问题和name成comments http://blog.csdn.net/huang_xw/article/details/5722981 2.连接数据库