当前位置:网站首页 > R语言数据分析 > 正文

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



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

变量声明、命名、提升

在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有很多不足之处,多谅解。

到此这篇跨域请求(跨域请求origin为null)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • yum相关命令(yum providers命令)2026-02-13 11:36:05
  • argparser(argparse模块有什么用)2026-02-13 11:36:05
  • topcoder竞赛(topcoder排名)2026-02-13 11:36:05
  • store苹果商店为什么下载不了软件(苹果商店为什么不能下载软件)2026-02-13 11:36:05
  • redis连接不上是啥原因(redisson连不上redis)2026-02-13 11:36:05
  • springboot用户密码加密(springboot登录密码加密)2026-02-13 11:36:05
  • 启动docker守护进程(docker维护)2026-02-13 11:36:05
  • impdp导入命令(impdp导入命令参数详解query)2026-02-13 11:36:05
  • 苹果15pro价格(苹果15pro价格表官网报价)2026-02-13 11:36:05
  • aurocean是什么牌子(auroral是什么品牌)2026-02-13 11:36:05
  • 全屏图片