博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript中的变量
阅读量:4513 次
发布时间:2019-06-08

本文共 1340 字,大约阅读时间需要 4 分钟。

本次的学习目标:

① 理解JS 中变量的概念;

② 理解JS 中的各种数据类型;

③ 了解各种数据类型的转换。

一、变量的概念

变量即变化的量,在JS中变量是松散类型的,可以用来保存任何数据类型,在定义变量时,用var操作符,后面跟变量名。

var name;  //变量未初始化,此时变量保存值为:undefinedvar name = "张三";   //定义变量时直接初始化,此时的变量值为 张三var i = 0 , sum;  //JS也可以同时声明多个变量,用逗号隔开

关于变量的一个小实例:

var x = 5; var y = 6; var z = x + y; document.write(x + ","); document.write(y + ","); document.write(z + ",");
//输出结果为:5, 6, 11

注:可以把变量当做一个储存数据的容器

二、变量的命名规范

① 变量必须以字母开头(也能以$和_开头,但是不推荐这么做

② 变量名称对大小写是敏感的(大写Y和小写y是不同的变量!)

注:JS语句和JS变量都对大小写敏感

三、变量的作用域

涉及到变量的作用域就有两个概念需要知道:① 局部变量; ② 全局变量。

全局变量:拥有全局作用域,在JS代码中任何地方都有定义。

局部变量:是在函数内部声明的变量,在函数内部任何地方都是有定义的,在函数退出后,会被销毁。

全局变量作用域示例:

局部变量作用域示例:

在函数中,局部变量的优先级高于全局变量,假如有同名的局部变量和全局变量,那么局部变量会覆盖全局变量

上面代码中,第一个alert是返回函数调用的返回值,即函数内部定义的变量variable,此时他替代了全局作用域中定义的variable的值,显示为local;

第二个alert是返回变量variable,由于调用结束后,内部定义的变量将被销毁,所以第二个弹出的语句是返回全局变量,全局变量并未改变,所以是global。

四、执行环境及作用域链 

执行环境定义了变量或函数有权访问的其他数据,决定了他们的各自行为。某个执行环境中所有的代码执行完毕后,这个环境被销毁,保存在其中的所有函数和变量也随之被销毁

(注意:全局执行环境直到关闭页面时才被销毁!)全局执行环境是最外围的执行环境,在web浏览器中,全局执行环境被认为是window对象。

每一段JS代码(全局代码或函数)都有一个与之关联的作用域链,这个作用域链是一个对象列表,定义了这段代码“”作用域“”的变量。

当JS需要查找变量X的值时,踏会从链中的第一个对象开始查找,若这个对象有名为X的属性,则会直接使用这个属性的值,若没有,则会继续查找下一个对象,若整个作用域链上

都没有任何一个对象含有X,那么就称这段代码的作用域上不存在X,并抛出异常。

上面代码中,首先它会在函数f()中寻找变量X,找不到然后往上查找,找到后和3相加,最后就弹出4。

 

转载于:https://www.cnblogs.com/free-whale/p/10096984.html

你可能感兴趣的文章
洛谷P1031 均分纸牌
查看>>
高性能NIO通信框架之Netty入门(二)-----TCP粘包/拆包
查看>>
FreeMarker初探--安装FreeMarker
查看>>
Eclipse git pull 报Nothing to fetch 异常原因
查看>>
Java中封装类型.valueOf()
查看>>
精品资源:40个实用的 PSD 贴纸模板《下篇》
查看>>
【面试题】BD
查看>>
【面试】链表反转
查看>>
素数距离问题_ny_24.java
查看>>
总结A*,Dijkstra,广度优先搜索,深度优先搜索的复杂度比较
查看>>
报错An internal error occurred during: "reload maven project". java.lang.NullPointerException
查看>>
JSP中include指令和include动作的区别
查看>>
ios中创建控制器的几种方式
查看>>
MySQL中TEXT与BLOB字段类型的区别
查看>>
送给大家一个安卓版的easyradius短信提示客户端
查看>>
pat乙级1036-1040
查看>>
Pyhton开发:Python基础杂货铺
查看>>
Springboot 打jar包分离lib,配置文件正确方式
查看>>
剑指Offer_编程题_18
查看>>
剑指Offer_编程题_23
查看>>