您的位置:首页 > Web前端 > JavaScript

js值的类型和函数传参

2015-06-24 12:16 435 查看
javascript中所有函数的参数都是按值传递的!

由于js中的值分为基本类型值引用类型值,所以才会出现函数对外部值改变情况的不同。

基本类型值指简单的数据段,而引用类型值指那些可能由多个值构成的对象。

5种基本类型(Undefined Null String Number Boolean)是按值访问的,可以操作保存在变量中的实际的值;

引用类型的值是保存在内存中的对象,javascript不允许用户直接访问内存中的位置,在操作对象时,实际上是在操作对象的引用而不是实际的对象,因此,引用类型的值是按引用访问的。

复制变量值的时候,基本类型直接将值复制一份,引用类型值也会将自己的值复制一份,只是它自己和复制的副本,都是一个指向内存中对象的指针。

因此,函数的参数都是按值传递的,只是这个值,本身就有实际值与指针之分。

现在来理解这句话:JavaScript 的字符串是不可变的!String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返回的是全新的字符串,而不是修改原始字符串。

因为String在js中是基本数据类型,所以在函数调用时,传递的是复制的值,而改变的也是这个复制后的值,跟原先的值还在那里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: