参数相关例子

例1:

var a = 10;
function test(a) {
    a -= 3;            
}
test(a);     
console.log(a);
  <!-- test(a)是带参数进入函数的,但是在函数里没有return a,且没有把a重新赋值a=test(a),所以下面打印a依然为10。
  如若以带参数执行函数且想拿到改变后的a,需在函数中添加return a;test(a)改为a=test(a); -->

例2:

var a = 10;
function test() {
    a -= 3;
}
test();
console.log(a);
<!-- 这种情况未带参数进入,在函数中执行改变的直接是全局变量,不需要return和重新赋值就改变了全局的值 -->

例3:

function fn1() {
  alert(1);
}
alert(fn1());  //1  undefined; 
<!-- 首先执行fn1,打印了1,随后执行了alert(fn1()),由于fn1没有return返回值,所以alert弹出的fn1()执行结果为undefined -->

例4:

for (var i = 0; i < 10; i++) {}
document.write(i);  //10

例5:

var num1 = 1;
function testf1() {
  num1 = 2;
  var num1;
  alert(num1);
}
function testf2() {
  alert(num1);
}
testf1();//2
testf2();//1
<!-- 
在函数里的变量,只要加了var,无论是在变量赋值之前还是之后执行,都相当于最先执行。相当于var了一个局部变量。
所以在testf1里改变的只是局部变量,全局变量不变。
 -->

例6:

对象添加属性名为name的方式错误的是  B   因为b选项括号里是一个变量,未对变量name赋值。
A. obj.name = “张三”;        B. obj[name] = “张三”;	
C.obj[“name”]	= “张三”;    D. obj[“na”+”me”] = “张三”;

例7:

var x = 0;
var f = function () {
  x = 1;
};
f();
console.log(x); //1
function f() {
  x = 2;
}
f();
console.log(x); //1 
<!--
两次打印出来的都为1,涉及到函数的两种创建方法。普通函数的创建是在执行到script脚本的时候就进入堆中,但是匿名函数创建时,只有执行到匿名函数时,函数才会进入到堆中。
该题下面创建出的函数被上面匿名函数创建时所覆盖,所以两次f()执行时都是执行的匿名函数。且匿名函数中没有定义变量,改变了全局变量。
 -->

例8:

var a=0;
var b = ( a++, a++ +a ); //(0,1+2)
console.log(a,b); //2 3

细节:

var _myName = 12a  该命名变量有误,12a是字符串,不是纯数字,字符串要用引号

document.write(num++); 在未定义num的时候,给dom写入num++ 会显示出NaN

var obj = {[ ]}  这种创建对象的方法会报错

var obj = [{}]   这种创建数组的方法正确

typeof null ===> object 

JavaScript基本数据类型    基础类型:字符型,布尔型,数值型,undefined,null  复杂类型:object
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值