Js从头学起(基本数据类型和引用类型的参数传递详细分析)
funciton addTen(num){
num+=10;
return num;
}
var count=20;
var result=addTen(count);
alert(count);//20
alert(resullt);//30
执行结果是:20和30。在这段代码中,将变量count当做参数传递给了函数addTen,也就是相当于将变量count的值复制给了函数addTen的参数。这时addTen的参数num可以看做是函数内部的一个变量。在上段代码中,就相当于两个基本数据类型变量之间的值复制。而基本数据类型都有自己独立的内存地址,所以num和count是没有任何关系的,他们只是值相等而已,函数执行完毕后,count的值并没有改变。而函数外面的result是被直接赋值的,所以result的值就是函数的结果30。
2、引用类型传递参数:
代码如下:
function setName(obj){
obj.name="LSN";
}
var person=new Object();
setName(person);
alert(person.name);//LSN
执行结果是:LSN。在这段代码中,函数setName的作用是给obj对象添加了一个属性name并给该属性赋值为"LSN",因为obj是引用类型,所以这里属于是将引用类型person赋值给了obj,也就是说person和obj引用了一个内存地址,所以当给obj新加了属性name时,在函数外面的person也跟着改变,最后person.naem的结果为LSN。
3、引用类型传递参数到底传的是值还是引用?
代码如下:
function setName(obj){
obj.name="ABC";
obj=new Object();
obj.name="BCD";
}
var person=new Object();
setName(person);
alert(person.name);// ABC
执行结果是:ABC。实例3与实例2的区别是在函数中又加了2行代码,在给obj对象新加一个属性name并赋值后 又将obj定义成了一个新的对象(new Object()),定义新对象后又name赋上新的值“BCD”。这个时候如果是按引用传递的话,那么最后person对象就会自动修改为指向其name属性为"BCD"的新对象,但最后显示的却是“ABC”,这说明即使在函数内部修改了参数的值,但原始的引用还保持不变。实际上,当在函数内部obj=new Object()时 这个新的obj就已经成为函数内部的局部对象了,这个对象会在函数执行完毕后自动销毁。
相关推荐
-
JavaScript基本数据类型及值类型和引用类型
在JavaScript中四种基本的数据类型:数值(整数和实数).字符串型(用""号或''括起来的字符或数值).布尔型(使True或False表示)和空值.在JavaScript的基本类型中的数据可以是常量,也可以变量.由于JavaScript采用弱类型的形式,因而一个数据的变量或常量不必首先作声明,而是在使用或赋值时确定其数据的类型的.当然也可以先声明该数据的类型,它是通过在赋值时自动说明其数据类型的. javascript中的变量 javascript中的变量只是一个占位符,前言已经
-
javascript中的五种基本数据类型
[0]5种数据类型: [0.1]基本数据类型:Undefined.Null.Boolean.Number.String [0.1.1]基本类型值是指简单的数据段,5种基本类型是按值访问的,因为可以操作保存在变量中的实际值 [0.1.2]基本类型的值在内存中占据固定大小的空间,被保存在栈内存中.从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本. [0.1.3]不能给基本类型的值添加属性 [0.2]引用数据类型:Object [0.2.1]引用类型值是指那些可以由多个值构成的对象.js
-
javascript基本数据类型及类型检测常用方法小结
本文实例讲述了javascript中的基本数据类型以及类型检测的几种方法.分享给大家供大家参考,具体如下: 1.JS中有6种基本的数据类型,JS中的所有操作都是基于这五种基本类型得到的. (1)Object 对象类型 (2)number 数字类型 (3)String 字符串类型 (4)null (5)underfined (6)boolean 布尔类型:true或者为false I)JS中的数据类型转换(非严格模式下) "12"==12 // true 在非严格模式下,字符串可以向数字
-
浅谈js基本数据类型和typeof
JavaScript数据类型是非常简洁的,它只定义了6中基本数据类型 •null:空.无.表示不存在,当为对象的属性赋值为null,表示删除该属性 •undefined:未定义.当声明变量却没有赋值时会显示该值.可以为变量赋值为undefined •number:数值.最原始的数据类型,表达式计算的载体 •string:字符串.最抽象的数据类型,信息传播的载体 •boolean:布尔值.最机械的数据类型,逻辑运算的载体 •object:对象.面向对象的基础 #当弹出一个变量时: var aa;a
-
JavaScript类型系统之基本数据类型与包装类型
写在前面的话 javascript的数据类型可以分为两种:原始类型和引用类型 原始类型也称为基本类型或简单类型,因为其占据空间固定,是简单的数据段,为了便于提升变量查询速度,将其存储在栈(stack)中(按值访问).其中,javascript基本数据类型包括Undefined.Null.Boolean.Number和String五种 引用类型由于其值的大小会改变,所以不能将其存放在栈中,否则会降低变量查询速度,因此其存储在堆(heap)中,存储在变量处的值是一个指针,指向存储对象的内存处(按址访
-
javascript基本数据类型和转换
ECMAScript中有5种基本数据类型:Undefined.Null.Boolean.Number.String.还有1种复杂数据类型-Object,Object实质上是由一组无序的名值对(键值对)组成的.ECMAScript不支持任何创建自定义类型的机制. 由于ECMAScript是松散型的,所以需要一种手段来检测变量的数据类型,typeof就是具有这种功能的操作符.用typeof检测变量可能返回以下某个字符串: "undefined" 变量未定义 "boolean&qu
-
JS开发中基本数据类型具体有哪几种
JS开发中基本数据类型有哪些?JS的数据类型包括基本数据类型.复杂数据类型和特殊数据类型,今天我们主要先讲解一下基本数据类型. 0.先提示两个下面用到的知识点: 0.1typeof,是用来检测变量类型的 写法:typeof a: 0.2console.log()是用来在控制台打印你所需要的部分的 一般浏览器在进入HTML文件页面后,点击右键选择检查,就会出现控制台,选择console就可以看到你所打印的内容了 另外:alert()是页面弹框显示内容 document.write()是输出内容在页
-
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
1.基本数据类型传递参数: 复制代码 代码如下: funciton addTen(num){ num+=10; return num; } var count=20; var result=addTen(count); alert(count);//20 alert(resullt);//30 执行结果是:20和30.在这段代码中,将变量count当做参数传递给了函数addTen,也就是相当于将变量count的值复制给了函数addTen的参数.这时addTen的参数num可以看做是函数内部的一个
-
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
js 深浅拷贝问题 浅拷贝一般指的是基本类型的复制 深拷贝一般指引用类型的拷贝,把引用类型的值也拷贝出来 举例 h5的sessionStorage只能存放字符串,所以要存储json时就要把json使用JSON.stringify()把json转换成string,然后再用JSON.parse()转换成json数据 缺点:JSON.parse和JSON.stringify只支持IE9+以上 解决这个问题可以使用深度比那里拷贝方法 js 中内存分配问题(堆和栈) js中基本类型类型一般是存储在栈中的.
-
JS中的两种数据类型及实现引用类型的深拷贝的方法
一.前言 我们知道,在JS中数据类型按照访问方式和存储方式的不同可分为基本类型和引用类型. 基本类型 基本类型有String.Boolean.Number,Undefined.Null,这些基本类型都是按值传递的,也称为值类型. 引用类型 引用类型有对象.数组.函数,它们都是按引用访问的. 二.存储方式区别 基本类型和引用类型由于两者在内存中存储的方式不同,造成两者访问的方式也不同.其中,基本类型存储在内存的栈中,是按值访问:引用类型存储在内存的堆中,是按引用访问.可如下图所示: 当有 var
-
JQuery从头学起第一讲
JQuery的重要性对一个coder来说应该是不言而喻的, 多少次在应聘的时候被问及是否会JQuery:多少次在写脚本的时候因为浏览器的不兼容而吐血:多少次因为需要用脚本做一个简单的效果而写到手抽筋.JQuery出现后,很多问题都被轻易解决了. 每学一样东西的时候,我们总是喜欢去了解下它的历史.既然是从头学起,我们也来稍微了解下它的历史. jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的Jörn Zaefferer
-
js学习总结_基于数据类型检测的四种方式(必看)
1.typeof 用来检测数据类型的运算符 console.log(typeof 12)//Number 使用typeof检测数据类型,首先返回的都是字符串 ,其次字符串中包含了对应的数据类型 例如:"number"."string"."boolean"."undefined"."function"."object" console.log(typeof typeof function(
-
从头学Python之编写可执行的.py文件
Python可是真强大.但他具体是怎么强大的,让我们一点一点来了解吧(小编每天晚上下班回家会抽时间看看教程,多充实下自己也是好的). 废话不多说,就讲一下这个背景吧: 事情是这个样子的~本着好学的精神,咱就买了本书,学习python结果呢,发现python的教程都是一个样子滴,上来的第一个helloworld都是通过IDLE来实现的.这个就比较让我头疼了,这个太简单了啊.可是我该肿么脱离IDLE来编写自己的python模块呢.于是乎,就有了这个文章 一.先讲一下我的操作步骤吧,后面再统一简单介绍
-
关于js typeof 与 instanceof 判断数据类型区别及开发使用
目录 1.typeof 操作符 2.instanceof 操作符 3.typeof 和 instanceof 的区别以及开发中的使用建议 前言: 日常的开发中,我们经常会遇到判断一个变量的数据类型或者该变量是否为空值的情况,你是如何去选择判断类型的操作符的?本文来总结记录一下我们开发人员必须掌握的关于 typeof 和 instanceof 的知识点以及在开发中的使用建议,同时在面试过程中也经常会遇到这样的问题. 1.typeof 操作符 typeof 操作符,确定任意变量的数据类型,确切说,它
-
JS中的四种数据类型判断方法
目录 1.typeof 2.instanceof 3.constructor 4.toString() 本文总结了四种判断方法: 1.typeof typeof是一个运算符,其有两种使用方式:(1)typeof(表达式); (2)typeof 变量名;返回值是一个字符串,用来说明变量的数据类型;所以可以用此来判断number, string, object, boolean, function, undefined, symbol 这七种类型,每种情况返回的内容如下表所示: // 字符串 con
-
JS入门必备之八种数据类型
目录 一.开门见山 二.动态数据类型 (1)字符串string (2)数值number (3)布尔boolean (4)null和undefined (5)symbol (6)对象object 三.基本数据类型与引用数据类型区别 3.1 声明变量时不同的内存分配 3.2 正是因为内存分配不同,在复制变量时结果也不一样 3.3 参数传递不同 总结 一.开门见山 在ES5的时候,我们认知的数据类型确实是 6种:Number.String.Boolean.undefined.object.Null E
-
JavaScript详细分析数据类型和运算符
目录 一.js中的数据类型 1.数值型 2.字符串型 3.逻辑(布尔)型 4.空(null)值 5.未定义(undefined) 6.复合数据类型Object 二.JavaScript中的运算符 1.算数运算符 2.赋值运算符 3.比较运算符 4.逻辑运算符 一.js中的数据类型 1.JS是弱类型的脚本语言,所有的变量对象的数据类型的声明都是var . 2.变量声明时没有确定具体的数据类型,在变量赋值时确定变量具体的数据类型. 五种基本的数据类型 1.数值型 number整数和浮点数统称为数值.
随机推荐
- ASP变量加变量实现代码
- spring hibernate实现动态替换表名(分表)的方法
- 进一步探究Python中的正则表达式
- php自动给网址加上链接的方法
- python模拟登录百度贴吧(百度贴吧登录)实例
- 如何采集静态文章系统
- 关于jsp页面使用jstl的异常分析
- 网页中的图片查看器viewjs使用方法
- PHP代码审核的详细介绍
- 基于C#中XmlReader读取Xml的深入分析
- jQuery实现的tab标签切换效果示例
- JavaScript程序中实现继承特性的方式总结
- UserData用法总结 lanyu出品
- C#识别出图片里的数字和字母
- Asp.net MVC中获取控制器的名称的方法
- C++中const的实现细节介绍(C,C#同理)
- CISBitmap派生的VC++位图透明类实例
- Android实现微博菜单弹出效果
- python实现kNN算法
- 利用Vue2.x开发实现JSON树的方法