日期: 2022-09-21 05:47:14 浏览数:2

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
玉溪设计网页公司

//声明覆盖相当于:
//var a=1;
var a;
我们再输出a的值,验证下是 undefined 还是 1 就知道了。
console.log(a);
独孤尚良
独孤尚良
yut***hanlin@qq.com
参考地址
3年前 (2019-04-03)
杨大帅
204***1624@qq.com
11
-----------------------------------------------------------------
同名声明赋值的变量:逐条进行-后者覆盖前者。(同级别覆盖)
var a = 1;
var a = 2;
console.log(a); // 输出结果:2
同名声明赋值的-函数和变量:逐条进行-后者覆盖前者。(同级别覆盖)
var a = 1;
var a = function () {
}
console.log(a); //输出结果: a 函数
-----------------------------------------------------------------
注:var f = function () {} 和 function f () {} 的区别(有var就有内存)
var f = function () {console.log("有var")} // 声明函数
function f () {} // 未声明函数
console.log(f); // 输出结果: 有var的f函数
-----------------------------------------------------------------
同名声明的变量:赋值的级别高。(同名声明未赋值)
var a = 1; // 赋值
var a; // 未赋值
console.log(a); // 输出结果: 1
-----------------------------------------------------------------
声明和未声明的同名变量:后者是重新赋值。(同名未声明赋值)
var a = 1; // 声明赋值
a =2 ; // 未声明变量
console.log(a); // 输出结果: 2
var f = function () {} // 声明赋值
f = function () {console.log("赋值")} // 未声明变量
console.log(f); // 输出结果:function () {console.log("赋值")}
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
S 中有两种函数,一种是普通函数,一种是函数对象。下面的这种就是“函数对象”,它实际上是声明一个匿名函数,然后将该函数的 init 方法赋值给该变量。
var a = 100;var a = function() { return "function";}console.log(a);/* 输出 function() { return "function"; } */console.log(a()); //输出 "function"函数与内部变量重名
定义普通函数,即在 window 变量下,定义一个 key,它的名字为该函数名,值为该函数的地址。函数内部的 this 指向 window 对象。
function a() { console.log(this); //输出 window{...} this.a = 1; //即 window.a = 1,此时window下的function a已经被该变量覆盖了。 var a = 5; //下面的这几个变量都是局部变量,仅在花括号范围内有效。 a = 10; var v = "value" return "function";}console.log(a); //输出 function a {...}console.log(a()); //输出 "function"console.log(a); //输出 1console.log(v);/* 输出 Uncaught ReferenceError: v is not defined (anonymous function) @ mycolor.html:15 */TheArrow
191***030@qq.com
参考地址
独孤尚良
yut***hanlin@qq.com
参考地址
楼上有句话是觉得欠妥当的 —— “JavaScript 允许重复声明变量,后声明的覆盖之前的”。
JavaScript 允许变量被重复声明,在声明变量时 JavaScript 会自行判断这个变量是否已经被声明了,如果已经被声明(即已经存在),那么重复声明(即除了变量的非首次声明)会被跳过,不再执行声明的操作。
JavaScript 变量的值是可以被重复赋值的,最后的赋值是这个变量最后的结果。
这个笔记所说的覆盖,其实是赋值的覆盖。如果说后声明的会覆盖已声明的,那么后声明的应该是 undefined 而不是第一次声明时候的赋值,也就是说如果是声明覆盖的话,相当于没有 var a=1 那么一个只有声明没有赋值的变量,它的值就是 undefined。
我们如何验证这个覆盖是声明的覆盖还是赋值的覆盖呢?看下面的代码:
我们再输出a的值,验证下是 undefined 还是 1 就知道了。
独孤尚良
yut***hanlin@qq.com
参考地址
杨大帅
204***1624@qq.com
-----------------------------------------------------------------
同名声明赋值的变量:逐条进行-后者覆盖前者。(同级别覆盖)