js值的类型和函数传参

javascript中所有函数的参数都是按值传递的!

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

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

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

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

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

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

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

因为String在js中是基本数据类型,所以在函数调用时,传递的是复制的值,而改变的也是这个复制后的值,跟原先的值还在那里。

时间: 2024-10-15 11:59:35

js值的类型和函数传参的相关文章

JS错误记录-fgm练习-函数传参

<script> window.onload = function() { var oBtn = document.getElementsByTagName('button')[0]; var aTxt = document.getElementsByTagName('input'); // oBtn.onclick = getValue(aTxt[0].value, aTxt[1].value); // 点击事件后面要跟function 再调用别的函数!! oBtn.onclick = fu

JS之arguments属性解读函数传参?

Arguments 该对象代表正在执行的函数 和 调用他的函数的参数. arguments属性:为当前执行中的 Function 对象返回 arguments 对象 和 参数. [function.]arguments[n] 参数说明: 参数function :选项.当前正在执行的 Function 对象的名字. n:表示传递过来的参数下标索引 1.对于参数对象 说明:Arguments是进行函数调用时,除了指定的参数外,还另外创建的一个隐藏对象. <script> var result =f

js最基础知识回顾2(函数传参,操作属性的第二种方式,提取行间事件,操作一组元素,this,焦点问题和鼠标按下抬起,选项卡)

一.函数传参     1.函数传参:参数就是占位符----函数里定不下来的东西 a. var a1=function(){ alert(123); }; function a(f){ // 相当于 f=a1 f(); }; a(a1); b.  function skip(skipPath){  //换肤 var oLink1 = document.getElementById('link1'); oLink1.href=skipPath; } c.   function setStyle(na

【JS学习笔记】函数传参

比如仅仅改变背景的颜色 函数传参:参数就是占位符. 那么在什么时候用传参呢?函数里定不下来的东西. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">

函数传参,改变Div任意属性的值&amp;&amp;图片列表:鼠标移入/移出改变图片透明度

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

c# 通用类型系统 深拷贝 浅拷贝 函数传参

c# 通用类型系统 及变量在 深拷贝 浅拷贝 函数传参 中的深层次的表现 在编程中遇到了一些想不到的异常,跟踪发现,自己对于c#变量在内存上的表现理解有偏差,系统的学习并通过代码实验梳理了各种情况下,变量在内存级的表现情况,对以后的coding应该有些帮助.在此记录以免忘记了... 1. 通用类型系统 先来一张图: 通用数据类型分为了值类型和引用类型. 我们定义一个int型实际上是一个system.int32的实例,在语法上我们像使用其他的类对象一样,但是,存储的的仍然是基本类型.这种把基本类型

C语言之main函数传参

1:为什么需要给main函数传参 首先要明白一点,给mian函数传参不是必须的,但是有时候我们需要通过给main函数不同的参数来得到的不同的结果,比如我们希望main函数中某个变量的值为0时执行子函数A,该变量值为1时执行子函数B,那么这个时候就可以通过给main函数传参来实现,mian函数传参格式如下: int main(int argc , char *argv[]) int main(int argc , char **argv) 参数解释: argc:int类型的参数,表示给mian函数

2、函数传参

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>2.函数传参</title> <link href="base.css"> <style> li{ padding-bottom: 50px; } .l{ border: 1px solid #ccc; width

VC与JavaScript交互(三) ———— CWebPage类调用javascript函数(给js函数传参,并取得返回值)

①需要一个别人写好的类CWebPage,将其对于的两个文件WebPage.h和WebPage.cpp添加到工程中. ②添加WebBrowser控件,在视图/对话框类的头文件中#include "webbrowser2.h",增加成员变量m_webBrowser,调用Navigate()函数加载一个html页面. ③在对话框或者视图的实现文件中,加入#include "WebPage.h",在按钮的响应函数中就可以调用javascript函数了,具体代码如下: CWe