JavaScript之变量函数作用域

前言:在此专栏中将会讲到 js 基础性的知识,包括但不仅限 es5、es6。将知识点与实际应用相结合,从理解到开发。每一次学习都有所收获,每一次重温知识点都加深印象,每一次掌握一种新知识都像打开了新世界的大门。希望在自己学习的同时能够帮助更多的人学习和理解。同时也欢迎各位猿友提出宝贵的建议和交流,有不对的地方还请赐教。

1.使用

2.变量

3.函数

4.作用域

一. 开门见山

基本上每种语言的语法都有相似之处,学过一种那么其他的语法都好理解。在这里不过多地介绍语法相关知识,为了能够让小白中的小白也能理解,个别地方会详细说明。

1.使用

作为一种灵活性很高的解释型脚本语言,JavaScript 可以使用script标签引入并在标签内写方法,可以使用export import exports在各个模块间相互引用。

1)script
可以通过script标签的src属性引入 js 文件,可以在script标签内部书写 js 代码。

  • script 标签在 html 界面中按自上而下的顺序依次执行,如果其中一个在加载中,其它文件需要等待其加载完再加载,如果 script 引入文件数量较多且体积较大,那么将会影响界面的渲染效果比如样式的渲染。所以一般将 script 放置 body 末尾。
  • script 标签内部的 js 代码没有异步操作的情况下按照书写顺序执行
  • script 标签可以跨域,也就是耳熟能详的jsonp(其他跨域标签之后统一讲解)

2)export
es6 中可以使用export default导出模块,如:export default 666

3)import
es6 中可以使用import A from B引入模块,可以使用import {a} from B引入变量

4)exports
在 commonjs 中使用exports.default导出模块,使用 require(‘xxx’),由于 nodejs 早年间也借鉴了 commonjs 模块化思维,所以在 nodejs 中导出也类似,比如使用module.exports导出模块,使用 require 引入模块。

2.变量

js 遵循的是 ECMAScript 标准,而 ECMAScript 标准中的变量是松散类型的,所以先学习了其他语言比如 c 语言、Java 的同学第一眼可能觉得不可思议,因为 var 既可以定义数字、数组还可以定义字符串。

  • 声明
    es5 中定义使用 var(读音“哇~”),es6 中使用 let。

  • 变量提升
    es5 中变量可以重复声明,执行顺序是先声明后初始化,所有声明语句会被提到作用域最顶端先执行,导致变量出现提升。

var a = 0;

console.log(a); //0

console.log(b); //undefined

var b = 9;

在这里 b 变量就发生了提升,真正执行的顺序是:

var b;
console.log(b);
b = 9;

也就是说在打印的时候 b 还没有值,只是声明了并没有定义值。
如果打印的是不存在的没有声明的值则抛出异常not defined
来做一个题目测一下有没有看懂:

var a = 10;

function foo() {
   
  console.log(a)<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值