现在的位置: 首页 > web前端 > 正文

javascript有什么用?javascript 作用域是什么

2020年01月02日 web前端 ⁄ 共 1392字 ⁄ 字号 评论关闭

  JavaScript是一种轻量级的解释型编程语言,它旨在创建以网络为中心的应用程序;它与Java互补并集成在一起。JavaScript非常容易实现,因为它与HTML集成在一起;它是开放和跨平台的。

  javascript有什么用?

  1、使网页具有交互性,例如响应用户点击,给用户提供更好的体验

  2、可以处理表单,检验用户的输入,并提供及时反馈节省用户时间。例如,表单中要你输入电子邮箱而你却输入一个手机号,那么应该给你一个提醒。

  3、还可以根据用户的操作,动态的创建页面。例如,发邮件时,添加附件操作。

  4、设置cookie,cookie是存储在浏览器上的一些临时信息,例如你浏览过的网站地址,使用过的用户名

  5、JavaScript 使有规律地重复的HTML文段简化,减少下载时间。

  6、浏览器与服务器进行数据通讯,比如现在最流行的Ajax异步传输;

  7、更丰富的界面,可以使用JavaScript来包含诸如拖放组件和滑块之类的项目,以便为您的站点访问者提供丰富的界面。

  作用域理解:定义的变量、函数生效的范围。javascript 有全局作用域和函数作用域两种。

  注:es6实现let 块级作用域不是js原生的,底层同样是通过var实现的。如果想了解具体细节,请访问babel官方 对es6中let 进行解析。

  执行上下文

  范围:一段内或者一个函数内;

  全局:函数声明、变量声明 。范围:;

  函数:函数声明、变量声明、this、arguments。范围:一个函数内部;

  函数、变量声明提升

  当js引擎执行一个 执行上下文代码块时,执行顺序为:

  1.函数声明 function a(){};(函数优先) 注:let a = function (){}; 这是变量的声明和赋值,不是函数的声明。

  2.变量声明 var a; 注:刚开始只对变量进行声明,没有进行赋值,如果 在赋值之前使用到这个变量 值为:undefined。

  3.执行上下文为函数作用域时:确定this和arguments。

  4.按照js单线程和异步策略依次执行 作用域中的代码。

  我们习惯将 var a = 2; 看作一个声明,而实际上 JavaScript 引擎并不这么认为。它将 var a和 a = 2 当作两个单独的声明,第一个是编译阶段的任务,而第二个则是执行阶段的任务。这意味着无论作用域中的声明出现在什么地方,都将在代码本身被执行前首先进行处理。可以将这个过程形象地想象成所有的声明(变量和函数)都会被“移动”到各自作用域的最顶端,这个过程被称为提升。要注意避免重复声明,特别是当普通的 var 声明和函数声明混合在一起的时候,否则会引起很多危险的问题!

  作用域链

  自由变量:当前作用域没有定义的变量,但是上层作用域定义了,可以在此层作用域中使用的变量。

  作用域链:当使用一个变量时候,先在自己的作用域里找,如果没有找到,再到父级作用域找,一直找到全局作用域,如果都没有找到即报错。

  块级作用域

  js无块级作用域,仅有全局作用域和函数作用域两种作用域。

  ES6 通过对全局作用域的特殊实现,实现了js的块级作用域 let;

  let 的生效范围为 { };

  const 为定义常量。注:定义的常量的值存储的内存地址不可变动,值是可变的比如常量中定义的是数组 或者对象时候,可以通过数组或对象方法操作原数据,只要不重新赋值就没问题。

抱歉!评论已关闭.