2025年跨域请求(跨域请求origin为null)

跨域请求(跨域请求origin为null)nbsp 函数声明和变量声明总是会被解释器悄悄地被 提升 到方法体的最顶部 变量声明 命名 提升 在 JS 中 变量有 4 种基本方式进入作用域 语言内置 所有的作用域里都有 this 和 arguments 需要注意的是 arguments 在全局作用域是不可见的 形式参数 函数的形式参数会作为函数体作用域的一部分 函数声明 像这种形式 function foo 变量声明 像这样 var foo nbsp 变量提升 nbsp 依次会输出 5



函数声明和变量声明总是会被解释器悄悄地被“提升”到方法体的最顶部

变量声明、命名、提升

在JS中, 变量有4种基本方式进入作用域:

  • 语言内置: 所有的作用域里都有this和arguments;(需要注意的是arguments在全局作用域是不可见的)
  • 形式参数: 函数的形式参数会作为函数体作用域的一部分;
  • 函数声明: 像这种形式: function foo() {};
  • 变量声明: 像这样: var foo;

变量提升

依次会输出 5 、undefined 、10   因为在解析时候是等价于

接着看另外一个例子:

只有函数级作用域,if语句不会有:test3():

函数的提升

我们写JS的时候,通常会有两种写法:

  • 函数表达式 var fn=function fn(){}
  • 函数声明方式 function fn(){}

函数表达式需要注意的

  • 在function内部,fn完全等于fn1
  • 在function外面,fn1则是 not defined

补充一点函数表达式

定义里面的指定的函数名是不是被提升的

大家先看下面一段代码test6,思考一下会打印什么?

||

||

||

|| 输出在下面

||

||

||

||

||

||

所以,外面输出的a 依旧是最开始定义的全局变量

函数的声明比变量的声明的优先级要高

变量解析的顺序

一般情况下,会按照最开始说的四种方式依次解析

  • 语言内置:
  • 形式参数:
  • 函数声明:
  • 变量声明:

也有例外:

  • 内置的名称arguments表现得很奇怪,看起来应该是声明在形参之后,但是却在声明之前。这是说,如果形参里面有arguments,它会比内置的那个优先级高。所以尽可能不要在形参里面使用arguments;
  • 在任何地方定义this变量都会出语法错误
  • 如果多个形式参数拥有相同的名称,最后的那个优先级高,即便是实际运行的时候它的值是undefined;

CAO!这么多坑,以后肿么写代码?

用var定义变量。对于一个名称,在一个作用域里面永远只有一次var声明。这样就不会遇到作用域和变量提升问题。

由于时间仓促,demo有很多不足之处,多谅解。

今天的文章 2025年跨域请求(跨域请求origin为null)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2025-08-14 16:33
下一篇 2025-09-03 09:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/74229.html