浅谈javascript中的数据类型和引用类型
1.概述
javascript中有五种简单数据类型和一种复杂数据类型。
分别是:undefind, null, number, string ,boolean ----简单数据类型
Object------复杂数据类型
令人迷惑的是还有以下若干种引用类型。
分别是:Array,Date,RegExp,Function,Object
Number,String,Boolean-----基本包装类型
Global Object,Math------单体内置对象
2.差异
大家有歧义的地方肯定是number string boolean和Number String Boolean之间的差异
光从字面意思分辨二者不太直观,说出东西来只能是理论,还很绕,我们可以做实验来分辨。
window.onload = function () {
var a = 100; //number类型变量
var b = Number(100); //使用Number函数进行数据类型转换
var c = new Number(100); //定义一个Number对象且它的值为100
alert(typeof a + ',' + typeof b + ',' + typeof c); //number,number,object
a.name = 'jack'; //设置属性无效
b.name = 'mary'; //设置属性无效
c.name = 'tom'; //name属性值为tom
alert(a.name + ',' + b.name + ',' + c.name); //undefined,undefined,tom
//--------------------华丽丽的分割线---------------------------------------
var d = new String(10);
setValue(d); //形参赋值肯定无效,d仍为10
setName(d); //按照C语言的说法,此时d为name属性的指针。d的name为rose
swapValue(c, d); //形参赋值还是无效,甭管形参是值还是指针.c的name还是tom
swapName(c, d);//交换成功,c的name为rose
};
function setName(obj) {
obj.name = 'rose';
}
function setValue(value) {
value = 'rose';
}
function swapValue(val1, val2) {
val1 = val2;
}
function swapName(val1, val2) {
val1.name = val2.name;
}
浅谈javascript中的数据类型和引用类型的更多相关文章
- 浅谈JavaScript中的闭包
浅谈JavaScript中的闭包 在JavaScript中,闭包是指这样一个函数:它有权访问另一个函数作用域中的变量. 创建一个闭包的常用的方式:在一个函数内部创建另一个函数. 比如: functio ...
- 浅谈JavaScript中的null和undefined
浅谈JavaScript中的null和undefined null null是JavaScript中的关键字,表示一个特殊值,常用来描述"空值". 对null进行typeof类型运 ...
- 浅谈JavaScript中的正则表达式(适用初学者观看)
浅谈JavaScript中的正则表达式 1.什么是正则表达式(RegExp)? 官方定义: 正则表达式是一种特殊的字符串模式,用于匹配一组字符串,就好比用模具做产品,而正则就是这个模具,定义一种规则去 ...
- 浅谈JavaScript中的变量、参数、作用域和作用域链
基本类型和引用类型 在JavaScript中有两种数据类型值.基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指的是可能由多个值构成的对象.在JavaScript中有5种基本数据类型 ...
- 浅谈JavaScript中的Function引用类型
引言 在JavaScript中最有意思的就是函数了,这一切的根源在于函数实际上是一个对象.每一个函数都是Function类型的实例,而且都和其他引用类型的实例一样具有属性和方法.函数作为一个对象,因此 ...
- 浅谈JavaScript中的内存管理
一门语言的内存存储方式是我们学习他必须要了解的,接下来让我浅谈一下自己对他的认识. 首先说,JavaScript中的变量包含两种两种类型: 1)值类型或基本类型:undefined.null.numb ...
- 浅谈JavaScript中的继承
引言 在JavaScript中,实现继承的主要方式是通过原型链技术.这一篇文章我们就通过介绍JavaScript中实现继承的几种方式来慢慢领会JavaScript中继承实现的点点滴滴. 原型链介绍 原 ...
- 浅谈JavaScript中的string拥有方法的原因
我们都知道,JavaScript数据类型分两大类,基本类型(或者称原始类型)和引用类型. 基本类型的值是保存在栈内存中的简单数据段,它们是按值访问的.JS中有五种基本类型:Undefined.Null ...
- 浅谈JavaScript中闭包
引言 闭包可以说是JavaScript中最有特色的一个地方,很好的理解闭包是更深层次的学习JavaScript的基础.这篇文章我们就来简单的谈下JavaScript下的闭包. 闭包是什么? 闭包是什么 ...
随机推荐
- Python学习教程(learning Python)--1.4 Python数据处理基础
本节主要讨论数据操作及运算符等基础知识,熟悉C语言相关知识的读者请跳过此节. 在高级语言编程过程中,有了数据以后通常要对数据进行相应的数据处理,加.减.乘.除等基本运算,不难理解. 在Python里 ...
- Android SharedPreferences使用以及原理详解
SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据.SharedPreferences只能保存简单类型的数据,例如,String.int等.一般会将复杂类型的数据转换成Ba ...
- Windows 10 IoT Core Samples
Windows 10 IoT Core Samples Welcome to the Windows 10 IoT Core Samples These samples have been valid ...
- 转载:监控每个节点(Indices部分)
集群的健康只是一个方面,它是对整个集群所有方面的一个很高的概括.节点状态的api是另外一个方面,它提供了关于你的集群中每个节点令你眼花缭乱的统计数据. 节点的状态提供了那么多的统计数据,在你很熟悉它们 ...
- mysql字段累加concat
update tablename set field1=concat(field1,'_bak') where field2 like '%@xxx’
- ExtJS MVC学习手记 2
开发环境 eclipse(indigo) ExtJS4.0 开发目标 使用store.model和controller创建菜单树 开发步骤 之前我们已经建立了一个MVC的项目框架.现在要做的就是在这个 ...
- CentOS 6.3 安装以及配置Apache php mysql
准备篇: 1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state –state NEW -m tcp -p tcp –dp ...
- POC - ASP.NET & IIS 部分
终于得到了我VM的管理员权限啦啦.接下来不需要把IIS架在我自己的电脑上了,将架在我的VM上. 1. 先添加ISAP和CGI的组件. 2. 将defaultAppPool的MODE设为CLASSIC, ...
- MATLAB 利用filter函数实现滑动平均滤波
function [ y ] = moving_average( x, win_size ) y1=filter(ones(1,win_size/2+1)/win_size,1,x); y2=fi ...
- Delphi 调试日子 - 莫名其妙的堆溢出
这个是个很有意思的事情,这一个成熟的模板上更改,同样的属性,同样的方法,新的组件在载入过程中就是报错. “Stack overflow” 因为有初始化过程,担心是不是那个地方有问题,由于是在属性赋值过 ...