• 基本数据类型和引用类型


    javascript的变量是松散类型的,只是在特定的时间用于保存特定值的一个名字。变量的值及其数据类型可以在脚本的生命周期内改变。
    数据类型包括:1.基本类型值,简单的数据段;2.引用类型值,由多个值构成的对象。

    1.基本类型值

    Undefined,Null,Boolean,Number,String。这五种变量是按值访问的,因为可以操作保存在变量中的实际的值。

    2.引用类型值

    是保存在内存中的对象,javascript不允许直接访问内存中的位置,也就是不能直接操作对象的内存空间。在操作对象的时候,实际上是在操作对象的引用。

    3.动态的属性

    对于引用类型的值,我们可以为其添加或删除其属性和方法,但是不能给基本类型的值添加属性,尽管不会导致任何错误。

    4.复制变量值

    基本类型:从一个变量向拎一个变量复制基本类型的值,会在变量对象上创建一个新值,然后把该值复制到为新变量分配的位置上。新变量只是一个副本,这两个变量可以参与任何操作而不会相互影响。
    引用类型:将存储在变量对象中的值复制一份放到为新变量分配的存储空间中,这个值的副本是一个指针,这个指针指向存储在堆中的一个对象,这两个变量实际上将引用同一个对象。

    5.传递参数

    所有函数的参数都是按值传递的,基本类型值的传递和基本类型变量的复制一样,而引用类型值的传递和引用类型变量的复制一样。
    访问变量有按值访问和按引用访问两种方式,但是参数只能按值传递。
    基本类型:被传递的值被复制给一个局部变量;
    引用类型:这个值在内存中的地址复制给一个局部变量,所以局部变量的变化会反映在函数的外部。在函数内部修改了参数的值,但原始的引用仍保持不变,实际上在函数内部重写了obj时,这个变量引用就是一个局部对象了,所以不影响外部 的obj,所以这是按值传递的。

    6.检测类型

    基本数据类型检测:typeof操作符是检测最佳的工具,可以确定一个变量是字符串、数值、布尔值还是undefined。
    字符串:string;
    数值:number;
    布尔值:boolean;
    未赋值:undefined;
    空值:object;
    对象:object;
    函数:function;
    正则表达式:function;在IE和Firefox中,返回object;
    引用类型检测:instanceof操作符,如果变量是给定引用类型的实例(根据原型链来识别),那么instanceof操作符就会返回true。
    用法:变量 instanceof 引用类型
    根据规定,所有引用类型的值都是object的实例,基本类型不是对象。
     
     
  • 相关阅读:
    poj 3040 Allowance
    poj 2393 Yogurt factory
    【BZOJ1833】数字计数(ZJOI2010)-数位DP
    【BZOJ4820】硬币游戏(SDOI2017)-概率+高斯消元+KMP
    【BZOJ3626】LCA(LNOI2014)-树链剖分+离线处理
    【BZOJ4817】树点涂色(SDOI2017)-LCT+LCA+线段树
    【BZOJ1135】LYZ(POI2009)-线段树+Hall定理
    【CF392D】Three Arrays-set+multiset
    【51Nod1688】LYKMUL-线段树+乘法原理
    【BZOJ2956】模积和-数论分块
  • 原文地址:https://www.cnblogs.com/Fawzia/p/6435235.html
Copyright © 2020-2023  润新知