精华内容
下载资源
问答
  • 1.原始数据类型包括:Number.String. Boolean. Null. Undefine. 2.引用数据类型包括:对象. 数组. 函数 3.存储位置不同:原始数据类型存储在栈中,占据空间小,大小固定,属于频繁使用数据。引用数据类型存储在堆中...

    1.原始数据类型包括:Number.String. Boolean. Null. Undefine.
    2.引用数据类型包括:对象. 数组. 函数
    3.存储位置不同:原始数据类型存储在栈中,占据空间小,大小固定,属于频繁使用数据。引用数据类型存储在堆中,占据空间大,大小不固定。
    4.传值方式不同:基本数据类型按值传递,无法改变一个基本数据类型的值。引用数据类型:按引用传递,引用类型值可改变。
    5.1和Number(2)区别
    1是基本数据类型,Number(1)是包装对象类型。

    展开全文
  • 但是,本文将更多聚焦独特的原始数据类型NullUndefined,是什么让他们如此相似,却又似是而非。 一、理解NullUndefined 在JavaScript中,null是字面量同时也是语言中的关键字,用来表示无法识别的对象值。换

    当讨论JavaScript中的原始数据类型时,大多数人都知道的基本知识,从String,Number到Boolean。这些原始类型相当简单,行为符合常识。但是,本文将更多聚焦独特的原始数据类型Null和Undefined,是什么让他们如此相似,却又似是而非。

    一、理解Null和Undefined
    在JavaScript中,null是字面量同时也是语言中的关键字,用来表示无法识别的对象值。换句话说,这用来表示“无值(no value)”。虽然相似,undefined实际上代表了不存在的值(non-existence of a value)。都是完全不可变的,没有属性和方法,也不能给其属性赋值。事实上,试图访问或定义一个属性将会引发一个类型错误(TypeError)。正如他们的名字暗示的那样,他们是完全无效的值。

    没有值代表的布尔值是false,这意味着他们在条件上下文中会被被计算为false,如if语句。使用相等操作符(= =)比较这两个值和其他false值,他们并不等于除了自己:

    ?
    null == 0; // false
    undefined == "" ; // false
    null == false ; // false
    undefined == false ; // false
    null == undefined; // true

    尽管如此,和其他相似之处,但null和undefined并不是等价的。每个作为其独特的类型的唯一成员,undefined是Undefined类型和null是Null类型。使用全等操作符(===)比较这两个值,这要求类型和值都相等,下面证明这一点:

    ?
    1
    undefined === null ; // false

    这是一个重要的区别,服务于不同的目的和理由。区分这两个值,你可以认为undefined代表一个意想不到的没有值而null作为预期没有值的代表。
    二、产生Undefined
    有许多的方法产生一个undefined值的代码。它通常遇到当试图访问一个不存在的值时。在这种情况下,在JavaScript这种动态的弱类型语言中,只会默认返回一个undefined值,而不是上升为一个错误。
    任何声明变量时没有提供一个初始值,都会有一个为undefined的默认值:

    ?
    1
    var foo; // 默认值为 undefined

    当试图访问一个不存在的对象属性或数组项时,返回一个undefined值:

    ?
    1
    2
    3
    var array = [1, 2, 3];
    var foo = array.foo; // foo 属性不存在, 返回 undefined
    var item = array[5]; // 数组中没有索引为5的项,返回 undefined

    如果省略了函数的返回语句,返回undefined:

    ?
    1
    var value = ( function (){})(); // 返回 undefined

    函数调用时未提供的值结果将为undefined参数值:

    ?
    1
    2
    3
    ( function (undefined){
       // 参数是 undefined
    })();

    void操作符也可以返回一个undefined值。像Underscore的库使用它作为一个防御式的类型检查,因为它是不可变的,可以在任何上下文依赖返回undefined:

    ?
    1
    2
    3
    function isUndefined(obj){
       return obj === void 0;
    }

    最后,undefined是一个预定义的全局变量(不像null关键字)初始化为undefined值:

    ?
    1
    'undefined' in window; // true

    ECMAScript 5中,这个变量是只读的,以前并非如此。

    三、Null的用例
    null的用例是使他与众不同的主要方面,因为不像undefined,null被认为是更有用。这正是为什么typeof操作符作用于null值时返回“object”。最初的理由是,现在仍然是,通常用作一个空引用一个空对象的预期,就像一个占位符。typeof的这种行为已经被确认为一个错误,虽然提出了修正,出于后兼容的目的,这一点已经保持不变。
    这就是为什么JavaScript环境从来没有设置一个值为null;它必须以编程方式完成。正如文档MDN所说:
    在api中,null是经常检索对象的地方可以预期,但没有相关的对象。
    这适用于DOM,它是独立于语言的,不属于ECMAScript规范的范围。因为它是一个外部API,试图获取一个不存在的元素返回一个null值,而不是undefined。
    一般来说,如果你需要给一个变量或属性指定一个不变值,将它传递给一个函数,或者从一个函数返回null,null几乎总是最好的选择。简而言之,JavaScript使用undefined并且程序员应该使用null。
    null的另一个可行的用例,也被认为是良好的实践是一个显式指定变量为无效(object= null)当一个引用不再是必需的。通过分配null值,有效地清除引用,并假设对象没有引用其他代码,指定垃圾收集,确保回收内存。
    四、深入挖掘
    使null和undefined像黑洞的不只是他们的行为,而是在他们在JavaScript环境的内部的处理方式。他们似乎通常并不具有同样的关联特征与其他原生或内置对象。
    在ES5中,Object.prototype.toString方法,已经成为实际的类型检查标准,这在null和undefined中被证明是一致的:

    ?
    1
    2
    Object.prototype.toString.call( null ); // [object Null]
    Object.prototype.toString.call(undefined); // [object Undefined]

    然而,Object.prototype.toString方法实际上并不是检索null的内部[[Class]]属性或undefined的公开构造函数。根据文档,以下步骤发生在被调用过程中:

    如果值是undefined,返回“[object Undefined]”。

    • 如果这个值为null,则返回“[object Null]”。
    • 让O作为调用ToObject同时传递this值作为参数的结果值。
    • 让class是O的内部属性[[Class]]的值。
    • 返回的结果连接三个字符串“[object ”,class,和“]”的结果的字符串值。

    该方法执行一个简单的字符串返回值,如果它检测到null或undefined和其他对象统一的功能。在整个规范中这是很常见的,因为当遇到null和undefined值时大多数方法包含一个简单的捕捉并返回。事实上,没有迹象表明他们包含与任何原生对象相关联的内部属性。就好像他们不是对象。我很想知道如果一个JavaScript的原生环境内部实际存在的显式方案会怎样?也许有人更熟悉一个可以参与的实现。

    结论
    无论这些原生对象多么不寻常,理解null和undefined之间的差异,和他们在JavaScript的语言基础中截然不同的角色。它可能不能使你的应用程序有所突破,但是一般来说,它仅被证明在开发和调试中长期有益。

    以上就是针对javascript中原始数据类型Null和Undefined进行的介绍,希望对大家的学习有所帮助。

    展开全文
  • 文章目录js的数据类型划分方式为 原始数据类型(基础数据类型) 引用数据类型两种类型的区别1.存储位置不同2.传值方式不同3.两种数据类型在实参形参中的区别 js的数据类型划分方式为 原始数据类型(基础数据类型...

    一、js的数据类型划分方式为 原始数据类型(基础数据类型)和 引用数据类型

    原始数据类型:Undefined,Null,Boolean,Number、String。

    引用数据类型:对象、数组、函数。

    二、两种类型的区别

    1.存储位置不同

    原始数据类型:直接存储在栈(stack)中的简单数据段,占据空间小,大小固定,属于被频繁使用的数据,所以存储在栈中;

    引用数据类型:存储在堆(heap)中的对象,占据空间大,大小不固定,如果存储在栈中,将会影响程序运行的性能。引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址,当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后,从堆中获得实体。

    什么是堆内存?什么是栈内存?

    ECMAScript 原始值和引用值

    2.传值方式不同

    • 基本数据类型:按值传递

    不可变(immutable)性质

    基本类型是不可变的(immutable),只有对象是可变的(mutable). 有时我们会尝试“改变”字符串的内容,但在JS中,任何看似对string值的"修改"操作,实际都是创建新的string值。任何方法都无法改变一个基本类型的值:

    var str = "abc";
        str[0]; // "a"
        str[0] = "d";
    console.log(str); //abc
    var name = 'jozo';
    var upName = name.toUpperCase(); 
    console.log(upName,name); // 输出 'JOZO' 'jozo'
    

    方法操作无法改变一个基本类型的值:

    var person = 'kn';
    person.age = 24;
    person.method = function(){};
    console.log(person.age); // undefined
    console.log(person.method); // undefined
    
    • 引用类型:按引用传递

    引用类型的值是可变的:

    var obj = {x: 0};
    obj.x = 100;
    var o = obj;
    o.x = 1;
    console.log(obj.x); //obj被修改
    o = {x: 100}; //等同于重新赋值,重新开辟内存,不是修改
    console.log(obj, o); //{"x":1} {"x":100}
    

    引用类型的值是同时保存在栈内存和堆内存中的对象。javascript和其他语言不同,其不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间,那我们操作啥呢? 实际上,是操作对象的引用,引用类型的值是按引用访问的。

    3.两种数据类型在实参和形参中的区别

    首先要明白什么实参什么是形参。

    实参:可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。

    形参:全称为“形式参数”,是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。

    function addNum(param) //相对于addNum方法来说 param是形参
    { 
        param+=10; 
       return param; 
    } 
    var num = 10;  
    var result = addNum(num); //相对于addNum方法来说 num是实参
    console.log(num); //10  
    console.log(result); //20
    

    上面的例子中,当将 num作为实参传入方法 addNum是 param作为形参接受并在方法体内使用,且num在全局中没用改变,但当实参为引用类型时:

    function fun(param)  //相对于fun方法来说 param是形参
     { 
        param[0]=99; 
       return param; 
    } 
     var num = [10];  
     var result = fun(num); //相对于fun方法来说 num是实参
     console.log(num[0]); //99 
     console.log(result); //[99]
    

    在方法体内改变形参,将同时改变实参。

    展开全文
  • 数据类型:  undefiend 没有定义数据类型  number 数值数据类型 例如 10或者1或者5.5  string 字符串数据类型用来描述文本 例如 "你的姓名"  boolean 布尔类型 true|false 不是正就是反,是或者否,有或者...
        数据类型:
    
            undefiend 没有定义数据类型
            number 数值数据类型 例如 10或者1或者5.5
            string 字符串数据类型用来描述文本 例如 "你的姓名"
            boolean 布尔类型 true|false  不是正就是反,是或者否,有或者没有
            object 对象类型 复杂的一组描述信息的集合

            function 函数类型


        null 和 undefined的区别:
            1、null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。
            null表示"没有对象",即该处不应该有值。典型用法是:
            (1) 作为函数的参数,表示该函数的参数不是对象。
            (2) 作为对象原型链的终点。
            2、当声明的变量还未被初始化时,变量的默认值为undefined。
            undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。
            (1)变量被声明了,但没有赋值时,就等于undefined。
            (2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。
            (3)对象没有赋值的属性,该属性的值为undefined。
            (4)函数没有返回值时,默认返回undefined。

            未定义的值和定义未赋值的为undefined,null是一种特殊的object,NaN是一种特殊的number。


        原始数据类型和引用数据类型:
            undefiend\null\boolean\string\number为原始类型;object(包括function、array、Date...)为引用类型
            比如说,1 是一个原始定义好的的number类型,Number(1)是一个函数类型,是我们自己声明的一个函数(方法)。
    展开全文
  • 一、JavaScript里有哪些数据类型,解释清楚null undefined,解释清楚原始数据类型和引用数据类型。比如讲一下1 Number(1)的区别 数据类型:  undefined,没有定义数据类型  number,数值数据类型,例如10...
  • JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型 null:空、无。...最原始数据类型,表达式计算的载体 string:字符串。最抽象的数据类型,信息传播的载体 boolean:布尔值。最机械的数...
  • javascript数据类型包括两种:一是基本数据类型(又叫原始数据类型);二是引用数据类型 基本数据类型指的是简单的数据段;而引用数据类型指的是由多个值构成的对象 基本数据类型:字符串(String)、数字(Number)...
  • JavaScript数据类型,包括原始类型和引用类型有哪些? 原始类型有五个 Number类型 专门保存数字的类型,可用于进行数学计算等的数值 String类型 专门用来保存字符串的类型;” “,用来存储字符串类型的文本. ...
  • 基本数据类型和引用数据类型的区别

    千次阅读 多人点赞 2018-03-18 21:35:18
    javascript中基本数据类型和引用数据类型的区别1、基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型。 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成...
  • ES6 引入了一种新的原始数据类型 Symbol,表示独一无二的值。它是 JavaScript 语言的第七种数据类型,前六种是:Undefined、Null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。 基本...
  • 呵呵,这个问题最好用实验证明,一看就明白: Object obj="AAAA"; //不会报错,因为 "AAAA" ...100 为 int 原始数据类型,所以不能转成Object 对象 "AAAA" 为字符串 String 类型对象, 由于所有对象类都是继承自Object
  • Java原始类型和引用类型

    千次阅读 2016-06-05 16:30:47
    在Java中提供了两种数据类型原始类型和引用类型。 本文主要针对这两种类型进行说明,便于在实际开发过程中正确选择合适的数据类型。 1. 原始类型  Java中的原始类型是不同于类的基本数据类型,包括如下8种...
  • js中的原始数据类型

    千次阅读 2018-12-21 23:49:14
    js中原始数据类型有:number、string、boolean、null、undefined、object null:当一个对象指向为空了,此时可以赋值为null undefined:1. 当变量声明了,但是没有赋值,结果是undefined            2.当...
  • 理解Java自定义类作为数据类型——引用数据类型

    千次阅读 多人点赞 2020-01-11 20:01:48
    前言:Java的数据类型按照类型可分为基本数据类型(byte、short、int、long、double、float、char、boolean)和引用数据类型(类(class)、接口(interface)、数组(array)),8种基本数据类型相信只要接触过Java就...
  • JavaScript中基本数据类型和引用数据类型的区别

    千次阅读 多人点赞 2018-01-06 11:09:53
    1、基本数据类型和引用数据类型  ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型。  基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象。  当我们把变量赋值给一个变量时...
  • 基本数据类和引用数据类型

    万次阅读 多人点赞 2018-06-07 22:19:07
    Java提供了两类数据类型:一种是基本数据(原始类型),一种是引用类型。 数据类型图: 基本数据类型: 注意: 1.在基本数据类型中,除了boolean类型所占长度与平台有关外,其他数据类型长度都是与平台无关的...
  • 惊呼!JavaScript基本数据类型和引用数据类型详解

    千次阅读 多人点赞 2021-06-01 09:56:55
    JavaScript中基本数据类型和引用数据类型 目标 理解基本数据类型和引用数据类型的定义 理解堆数据类型分为哪些 定义 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型。  基本数据类型指的是...
  • 一:python有两种数据类型: ...不可变数据类型(immutable object):像数字字符串,不能改变对象本身,只能改变引用的指向,称之为不可变数据类型,元组(tuple)尽管可以调用引用元素,但不可以赋值,因...
  • JavaScript原始类型和引用类型

    千次阅读 2015-10-23 09:43:58
    引子理解使用对象是理解整个 JavaScript 的关键JavaScript 把对象作为语言的中心,几乎所有的 JavaScript 的...JavaScript 中的数据分为两种类型原始类型和引用类型,两者都通过对象进行访问。原始类型保存为简单
  • Java程序员都要懂得知识点:原始数据类型

    万次阅读 多人点赞 2021-04-02 11:45:03
    本文分享自华为云社区《Java知识点问题总结之原始数据类型》,原文作者:breakDraw。 java原始数据类型有short、byte、int、long、boolean、char、float、double。原始数据是未处理的或简化的数据,它构成了物理...
  • 一、基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0 int:整型,用于存储...
  •   vue项目 ,定义了一个变量,然后 this.requirements this.showRequirements 都赋值为 requ ,在 this.requirements ...因为数组是引用类型数据,所以,当指向为同一个指针的时候,改变这个数组的值会...
  • 【Java】原始数据类型与其包装类

    千次阅读 热门讨论 2018-04-01 21:23:40
      Java语言中默认定义了8个原始数据类型,大致可以分为4类: 整型:包含byte、short、int、long 浮点型:float、double 布尔型:boolean 字符:char   这8个基本的数据类型如果在声明的时候没有初始化,...
  • 一、数据类型 Java中主要有8中基本数据类型,分别是byte,short,int,long,char,boolean,float,double,具体如下: 1、boolean:数据值只有true或false,适用于逻辑计算。 2、char:char型(字符型)数据在内存...
  • js中有六种数据类型——五种基本数据类型Number, String, Boolean, Undefined, Null, 一种复杂数据类型Object(也就是对象类型Object type,比如:Object 、Array 、Function 、Data等。)。 基本数据类型指的...
  • 基本数据类型和封装类型的区别

    千次阅读 多人点赞 2019-09-23 13:27:34
    基本数据类型和封装类型的区别基本数据类型基本数据类型介绍封装数据类型基本数据类型对应的封装类介绍基本数据类型与封装类对应关系对照表String类他们的区别总结合理的创建标题,有助于目录的生成如何改变文本的...
  •   JS1997年标准化以后,定义了六种内置类型,包括五种原始(Primitive)类型以及一种引用类型,ES6又新增了一种原始类型-----symbol,接下来咱们一一来分析下这七种内置类型: 六种原始类型 分别是: number string ...
  • 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3929585.html 【正文】 平时在学AndroidJava语言的时候,总是碰到“equals”...
  • js的基本数据类型和引用数据类型 js的六大数据类型 Number, String, Boolean, Undefined , Null , Object 基本数据类型:Number,String,Boolean, Null 引用数据类型:Object , Array, Function 如何...
  • Java中没有指针,没有引用传递了,仅仅有值传递。但是可以通过对象的方式来实现引用传递 类似java没有多继承 但可以用多次implements 接口实现多继承的功能。 值传递:方法调用时,实际参数把它的值传递给对应的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 217,886
精华内容 87,154
关键字:

原始数据类型和引用数据