JS脚本和JAVA中什么是强变量,什么是弱变量,什么意思啊

JavaScript06

JS脚本和JAVA中什么是强变量,什么是弱变量,什么意思啊,第1张

强/弱类型是指类型检查的严格程度的。语言有无类型,弱类型和强类型三种。无类型的不检查,甚至不区分指令和数据。弱类型的检查很弱,仅能严格的区分指令和数据。强类型的则严格的在编译期进行检查。

JAVA是强类型语言;因此每个变量和对象都必须具有声明类型。

javascript是弱类型语言;因此它可以不先定义类理和对象、或用var定义所有变量

javascript的变量是弱类型。

闭包:在类似C/C++这种的非函数式编程语言中,也可以定义函数指针并返回,但外层函数在执行结束后为内层函数定义的上下文信息会被销毁,而在闭包中,则保存了返回的函数,还包含返回函数的上下文信息。闭包有两个用途,一是方便实现嵌套的回调函数,二是隐藏对象的细节。

原型链:创建对象时,应该在构造函数内定义一般成员,而是其原型定义成员函数。JS中有两个特殊的对象:Object与Function,它们都是构造函数,用于生成对象。Object.prototype是所有对象的祖先,Function.prototype是所有函数的原型,包括构造函数。可以将JS的对象分为三类:用户创建对象,构造函数对象,原型对象。所有对象中都有一个__proto__属性,其指向此对象的原型。

构造函数对象有prototype,指向其原型对象,通过此构造函数创建对象时,新创建对象的__proto__属性将会指向构造函数的prototype属性。原型对象有一个constructor属性,指向它对应的构造函数。

js中的var是定义变量的意思,使用和不使用var都能定义变量,但是两个变量的作用域不同。

1、新建html文档,在body标签中添加script标签,使用var定义一个变量a并给变量赋值为10,将a在控制台输出,这时控制台会输出10:

2、定义一个demo函数,在函数里面重新使用var定义一个变量a,由于函数外的变量a是全局变量,函数内的变量a是局部变量,所以在函数执行后,第一个输出是未赋值的局部变量a,第二个是赋值为5后的局部变量a,第三个是赋值为10的全局变量a:

3、将var去掉,直接定义变量a,这时js默认定义的a是全局变量,函数外和函数内共用一个变量a,所以变量数值正常输出: