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. 启动标志 和launchMode

    (1) FLAG_ACTIVITY_NEW_TASK: 操作: Activity A启动开僻Task堆栈(堆栈状态: A), 在Activity A中启动Activity B, 启动Activity ...

  2. FLEX中一组基于button的组件

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

  3. xml文件中的${}

    看到了${}这样的表达式,脑海里面第一印象是不是我们jsp中的EL表达式?! 哈哈... 不过,这个真不是EL表达式,Spring提供了自己的EL表达式,可是它的格式是#{} so.... ${key ...

  4. Kubernetes中pod创建流程

    转自:https://blog.csdn.net/yan234280533/article/details/72567261 Pod是Kubernetes中最基本的部署调度单元,可以包含contain ...

  5. js把mysql传过来的时间格式化为:0000-00-00 00:00:00

    mysql传到前端的默认时间:2018-01-06T17:32:23+08:00 格式化的js代码 var time = '2018-01-06T17:32:23+08:00' var span = ...

  6. JEECG-P3开发专题 - 开发环境搭建入门

    官方标准开发工具: 1 .IDE Eclipse Java EE IDE for Web Developers. Version: Mars.2 Release (4.5.2) Build id: 2 ...

  7. java实现生成二维码

    package com.cn.test; import java.awt.Graphics2D; import java.awt.geom.AffineTransform; import java.a ...

  8. DJango之视图函数

    一)Django WEB框架 2) request.path和request.get_full_path() 是请求的路径 3)render:页面渲染 4)redirect:页面跳转 3)模板语法: ...

  9. javascript:查看一个图片是否加载完成

    查看一个图片是否加载完成:<img id="img1" src="http://pic1.xxx.com/wall/f/51c3bb99a21ea.jpg" ...

  10. 尚硅谷redis学习1-NOSQL简介

    本系列是自己学习尚硅谷redis视频的记录,防止遗忘,供以后用到时快速回忆起来,照抄视频和资料而已,没什么技术含量,仅给自己入门了解,我是对着视频看一遍再写的,视频地址如下:尚硅谷Redis视频 背景 ...