`

JS变量随便写写

阅读更多
一般来说js全局变量分为显式定义和隐式定义,分别是加var和不加var的区别,试了试发现在实际创建中两者还是有区别的,自己不太懂底层,所以只能凭代码运行说话了。

代码一
func();//正确执行
alert(param1);//undefined
		    
var obj=window;
for(o in obj){
    if(o!='external'){
        $("div").append(o+" "+obj[o]+"</br>");
    }
}
var param1=100;
var param2=[];
function func(){
    zs="111";
    alert(zs);
}

显式的定义了param1 param2,zs则是隐式的定义,前面for是循环出window里所有的变量
以上代码运行出来是
param1 undefined
param2 undefined
obj [object Window]
func function func(){ zs="111"; alert(zs); }
zs 111

可以看出虽然代码里param1,param2,func都是在for循环下创建的,但是实际在window里已经把param1和param2定义好了,由此可见js会不论前面带var的变量放到哪个位置,都会按照先后顺序先在顶上创建好,但是未赋值。而函数同样也定义到顶上,以上代码实际定义大概类似于下面

var param1,param2,obj;

function func(){
    zs="111";
    alert(zs);
}

func();
alert(param1);
		    
obj=window;
for(o in obj){
    if(o!='external'){
        $("div").append(o+" "+obj[o]+"</br>");
    }
}

param1=100;
param2=[];


但是如果去掉代码一里param1和param2前的var再运行,alert(param1)则会直接报错,提示param1 is not defined,没定义,所以如果隐式创建,则必须运行到变量所在创建位置才会创建这个变量

另外如果去掉代码一里的func();则zs这个全局函数是不会被创建的。可见js里全局变量是可以被动态创建的

同理var func=function(){....}的时候,会先创建一个叫func值为undefined的变量,当运行到赋值的时候才把函数赋给func,所以如果代码一中改成这种方式,在上面运行func()同样会报错,但function func(){}则不会报错。function前置的定义函数方式不论在js哪个地方定义,都能执行到。

关于<script></script>域的运作方式是:是执行完一个<script></script>中的代码再执行下一个<script></script>中的代码,这样上面
    func()
    function func(){}

如果写成这样就会报错不执行了
<script>
    func()
</script>
<script>
    function func(){}
</script>
0
0
分享到:
评论

相关推荐

    写的一个静态网站随便写的

    标题中的“写的一个静态网站随便写的”表明这是一个关于创建静态网站的主题。静态网站是指由HTML、CSS和JavaScript等静态文件组成,不包含服务器端动态脚本的网站。这些网站的内容在用户请求时不会改变,而是预先...

    在vue项目中 实现定义全局变量 全局函数操作

    比如说网站服务器地址,从后台拿到的:用户的登录token,用户的地址信息等,这时候就需要设置一波全局变量和全局函数,这两个设置不太难,而且有一些共通之处,可能有一些朋友对此不太了解,所以随便写出来分享一波。...

    日常笔记:随便写一些

    - 变量声明:JavaScript 使用 `var`, `let`, `const` 关键字声明变量,其中 `let` 和 `const` 是 ES6(ECMAScript 2015)引入的新特性。 - 数据类型:JavaScript 是弱类型语言,有七种基本数据类型,包括 `null`, ...

    javascript网页特效实例大全

    7.15 首字母大小写的变化 184 7.16 状态栏文字飞出效果 186 7.17 链接文字的滚动效果 188 7.18 不停变色的文字 189 7.19 文字颜色变化的显示效果 190 7.20 选中文本框中的全部文字 192 7.21 按钮上的滚动文字 ...

    深入浅析javascript中的作用域(推荐)

    所谓的作用域,可以简单理解为一个可以读、写的范围(区域),有些js经验的同学可能会说:”js没有块级作用域”,js除了全局作用域外,只有函数可以创建作用域。作用域的一个好处就是可以隔离变量。 我们通过一些例子来...

    JAVASCRIPT验证大全

    - `IsFireFox`变量用于判断当前浏览器是否为Firefox,以便适配不同的事件处理方式。 - 只有当输入框类型为文本、密码、单选按钮或下拉列表时才生效。 ##### 3. Ajax请求处理 ```javascript // Ajax请求处理 ...

    HTML初学者小练习-随机彩票

    在描述中提到的“函数名都是随便写的”,这表明开发者可能对命名规范还不太熟悉。在编程中,良好的命名习惯非常重要,因为它可以使代码更易读、易理解。函数名应该清晰地反映出其功能,如generateRandomNumbers或...

    简单绘图代码

    描述中的“随便写写的小东西,各位请笑纳~”表明这是一个作者随意创作的项目,可能用于学习、练习或分享目的。这种类型的代码通常不会有严格的工程标准,但可以提供一些基础的思路和方法,对于初学者来说,是个不错...

    javascript函数中参数传递问题示例探讨

    1. 函数参数作为数组传递:在JavaScript中,函数接收的参数并不是直接作为单独的变量,而是被组织成一个名为arguments的类数组对象中。这意味着无论你在调用函数时传递了多少参数,函数内部都通过这个arguments对象...

    hishop4.rar

    【描述】虽然描述中提到“随便都不知道怎么写 还要求我要写 真是的”,但我们可以从中推测,该压缩包的创建者可能没有提供详细的信息,或者他们对这个文件的内容不太熟悉。这可能意味着解压和使用这个文件需要一定的...

    源代码相关密码

    在描述部分提到的“我就随便写了一串数字而已”,这里暗示了随机字符串的生成。在实际开发中,随机字符串常常用于生成唯一标识符、密钥等场景。 **应用场景:** - **会话标识:** 在Web应用中,会话ID通常是由随机...

    基于jQuery的简单九宫格实现代码

    虽然作者表示这只是“随便写的一个”,但从代码实现来看,该示例还是具有一定的参考价值。接下来我们将深入分析这段代码,并对其背后的原理进行详细解读。 #### 三、代码实现与解析 ##### 1. HTML结构 ```html ...

    iceburg-instance:冰山游戏服务器实例

    稍后我会写更多,我可能应该进入设置##设置首先,我假设您以前从未使用过 Go,并且可能没有为 Go 设置工作区。 让我们来解决这个问题。 下面的链接介绍了编写 Go 代码的所有细节,包括工作区设置... ......但这是...

    FCK调用方法..

    5. 初始化内容:`oFCKeditor.Value = '随便写点内容!'`,这里预设了编辑器的初始文本。 6. 创建编辑器:`oFCKeditor.Create()`,这一行代码将编辑器实例化并插入到HTML中,使其在页面上可见。 FCKeditor还支持很多...

    《浩海网络多格式播放器》V3.9.4.1

    9,视频窗口和歌词展示区摆放更加自由,变量一定义,上下随便选!10,全新引入面向网站管理员的分类和播放器使用用户的歌曲分类功能!让站长和用户管理自己的歌曲更加有条理!11,全面新加有媒体文件类型支持视频...

    《OceanX》播放器 Prv0.3

    9,视频窗口和歌词展示区摆放更加自由,变量一定义,上下随便选!10,全新引入面向网站管理员的分类和播放器使用用户的歌曲分类功能!让站长和用户管理自己的歌曲更加有条理!11,全面新加有媒体文件类型支持视频...

    《浩海网络多格式播放器》V3.9.4.4

    9,视频窗口和歌词展示区摆放更加自由,变量一定义,上下随便选!10,全新引入面向网站管理员的分类和播放器使用用户的歌曲分类功能!让站长和用户管理自己的歌曲更加有条理!11,全面新加有媒体文件类型支持视频...

    《OceanX》播放器 Prv0.33

    9,视频窗口和歌词展示区摆放更加自由,变量一定义,上下随便选!10,全新引入面向网站管理员的分类和播放器使用用户的歌曲分类功能!让站长和用户管理自己的歌曲更加有条理!11,全面新加有媒体文件类型支持视频...

    《浩海网络多格式播放器》V3.9.4.5

    9,视频窗口和歌词展示区摆放更加自由,变量一定义,上下随便选!10,全新引入面向网站管理员的分类和播放器使用用户的歌曲分类功能!让站长和用户管理自己的歌曲更加有条理!11,全面新加有媒体文件类型支持视频...

    《OceanX》播放器 Prv0.34

    9,视频窗口和歌词展示区摆放更加自由,变量一定义,上下随便选!10,全新引入面向网站管理员的分类和播放器使用用户的歌曲分类功能!让站长和用户管理自己的歌曲更加有条理!11,全面新加有媒体文件类型支持视频...

Global site tag (gtag.js) - Google Analytics