javascript 函数里变量不能赋值

JavaScript020

javascript 函数里变量不能赋值,第1张

这个问题很简单,楼主的写法可能自己看的都很模糊:

var ff= -1

if(item=="活塞"){

ff=33

}

document.write(ff+item)

这么写就可以很清晰的看出,if到 } 后就已经结束,

后面的document.write()跟这个if没有关系了,如果你再if的 } 之前加上document.write(ff+item)

那么打印出来的就是 33活塞,如果想要把下面的代码也用33赋值,那要把上面if的 } 放到整个switch的后面把下面的方法都要包含进来

严格模式是一种将更好的错误检查引入代码中的方法。 在使用严格模式时,无法使用隐式声明的变量、将值赋给只读属性或将属性添加到不可扩展的对象等

1、 严格模式的目的

1) 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为

2)消除代码运行的一些不安全之处,保证代码运行的安全

3) 提高编译器效率,增加运行速度

4) 为未来新版本的Javascript做好铺垫

2、声明严格模式

可以通过在文件、程序或函数的开头添加 "use strict"来声明严格模式。 此类声明称作“指令序言”。 严格模式声明的范围取决于其上下文。 如果在全局上下文(函数的范围之外)中声明严格模式,则程序中的所有代码都处于严格模式。如果在函数中声明严格模式,则函数中的所有代码都处于严格模式。

因为放在外面的时候执行var myh=document.all.testtime.value-1时,document.all.testtime这个控件还没有初始化,所以得不到值。当放到函数里面,由于触发该函数执行的时候所有页面中的控件都已经初始化了,所有可以得到document.all.testtime控件的值。