javascript-js中数组和var类型的return问题

问题描述

js中数组和var类型的return问题
var arr = [10 20 30];
function add( arrayObj ){
for(var i in arr){
arrayObj[i] ++;
}
console.log( arrayObj );
}
add( arr );
console.log( arr );

var x = 10;
function f1( num ){
num++ ;
console.log(num);
}
f1( x );
console.log( 'x=' + x );
为什么数组不用定义return就可以改变里面的值,而var x=10,需要return才可以返回改变呢?

解决方案

两个完全不同的写法,一个是函数内直接修改全局变量。一个是返回一个值,主程序再修改。
很明显,第二个方法好。因为函数封装了对数据的操作,你可以把函数放在另一个程序中用。第一个方法,函数随便修改全局变量,这样的函数失去了封装代码的意义。

解决方案二:
你直接对数组进行修改了,值就变了,,,,你定义的x = 10 ;是全局变量,不返回,没法覆盖全局变量初值,,不返回,只是改变了局部变量

var x = 10;
function f1( num ){
num++ ;
console.log(num);
return num;
}
x = f1( x );
console.log( 'x=' + x );

这样就变了

时间: 2024-11-01 00:40:52

javascript-js中数组和var类型的return问题的相关文章

JS中数组重排序方法_javascript技巧

1.数组中已存在两个可直接用来重排序的方法:reverse()和sort(). reverse()和sort()方法的返回值是经过排序后的数组.reverse()方法会反转数组项的顺序: var values=[1,2,3,4,5]; values.reverse(); alert(values); //5,4,3,2,1 在默认情况下,sort()方法按升序排列数组,sort()方法会调用每个数组项的toString()转型方法,然后比较得到字符串,确定如何排序.即使数组中的每一项都是数值,s

js中数组的引用的例子

js中数组的引用应该算是基础知识了: var arr = [1,2,3]; var arr2 = arr; arr2[0] = 5;  //此时arr和arr2都变成了[5,2,3] 我们怎么斩断这种引用呢?我所知道的有两个方法: 1.数组的slice方法 var arr = [1,2,3]; var arr2 = arr.slice(); arr2[0] = 5;  //此时arr为[1,2,3]  arr2为[5,2,3] slice方法相当于复制出来一个新数组 2.数组的concat方法

JS中数组Array的用法示例介绍

 这篇文章主要介绍了JS中数组Array的用法,需要的朋友可以参考下 new Array()  new Array(len)  new Array([item0,[item1,[item2,...]]]  使用数组对象的方法:  var objArray=new Array();  objArray.concact([item1[,item2[,....]]]-------------------将参数列表连接到objArray的后面形成一个新的数组并返回,原有数组不受影响.如:var arr=

js中string和number类型互转换技巧(分享)_javascript技巧

1.string-->number string类型   *1  即可变成  number类型 2.number-->string number类型  +''  即可变成  string 类型 <script type="text/javascript"> function screenInfo() { var str = '012.8372'; var s = 0; str = str * 1; alert(typeof (str));//number s +

总结Node.js中的一些错误类型_node.js

前言 Node.js应用中可能会发生多种类型的错误.如:当出现语法错误或运行时错误时,会触发JavaScript错误:当试图试访问一个不存在或没有访问的文件时,会触发系统错误:除JavaScript错误和系统错误错误外,用户还可以自定义错误. 1. 错误分类 Node.js是一个JavaScript运行时平台,其应用发生错误都是一个Error实例或Error子类的实例. 在Node.js应用中,可能发生的错误有以下4类:      1.标准JavaScript错误,如:           <E

js中数组(Array)的排序(sort)注意事项说明

 本篇文章主要是对js中数组(Array)的排序(sort)注意事项进行了说明介绍,需要的朋友可以过来参考下,希望对大家有所帮助 直接看代码吧,测试结果也贴在里面了    代码如下: var arrDemo = new Array();    arrDemo[0] = 10;  arrDemo[1] = 50;  arrDemo[2] = 51;  arrDemo[3] = 100;    arrDemo.sort(); //调用sort方法后,数组本身会被改变,即影响原数组    alert(

javascript js 操作数组 增删改查的简单实现_javascript技巧

函数定义 Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[i] == val) return i; } return -1; }; Array.prototype.remove = function(val) { var index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } }

JSP页面中有一个JSP脚本,我想把JS中的一个var变量放到session里该怎么做?

问题描述 JSP页面中有一个JSP脚本,我想把JS中的一个var变量放到session里该怎么做? 如题: var s="sdd"; <% session.setAttribute("msg",s);%> 这个代码如何把s放到这个session中?? 解决方案 服务器端无法直接使用客户端内容,用提交到服务器才行,用表单或者ajax来提交s的值 http://www.w3school.com.cn/jquery/ajax_ajax.asp 解决方案二: h

java 中数组是值类型还是引用类型?

问题描述 java 中数组是值类型还是引用类型?Object o = new int[] {1,2,3};观点1:数组类型是一族类型,它们都继承自System.Array,而System.Array又继承自System.Object.所有的数组类型都是引用类型.观点2:看你的数组是用的类对象还是基本数据类型了如果是值类型的数组,比如int[],那里面存的就是值类型.引用类型,就存引用咯!观点3:除了基本数据类型,其他的都是引用数据类型或者其他说法! 解决方案 除了基本数据类型,其他的都是引用数据