JavaScript基础(三)流程控制
流程控制 switch switch底层用的是 === 比较。 参考链接:http://www.cnblogs.com/codetker/p/4680996.html switch ("111"){ case 111: alert(111); break; case 222: alert(222); break; case 222: alert(333); break; default : alert("都不是!"); }
//第一种:(函数的声明)第一种定义方法最强大,定义完毕后,在哪里使用都可以,无位置限制。
function fn1(){
console.log("我是第一种定义方法!");
}
//第二种(函数表达式:匿名函数) :后两种定义方法是有局限性的。(使用函数必须在定义函数之后)
var fn2 = function (){
console.log("我是第二种定义方法!");
}; // 注意分号
function (){
console.log("我是第二种定义方法!");
}(); // 第二种方式的调用方式之一:函数的自调用
//第三种
var fn3 = new Function("console.log('我是第三种定义方法!')");
函数名();
//打印函数名,就等于打印整个函数。
console.log(fn);
//打印执行函数,就等于打印函数的返回值。
console.log(fn());
1. 如果函数没有显示的使用 return 语句 ,那么函数有默认的返回值:undefined
2. 如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined.
全局变量:在 script 使用 var定义的变量和没有 var 的变量(所有的 script 共享其全局性,js里面没有块级作用域概念,只有全局作用域和局部作用域)。
隐式全局变量:在 script 没有 var 的变量。
function fn(){
var a = b = c = 1; // b和c就是隐式全局变量(等号)
var a = 1; b = 2; c = 3; // b和c就是隐式全局变量(分号)
var a = 1 , b = 2 , c = 3; // b和c就不是隐式全局变量(逗号)
}
(全局变量是不能被删除的,隐式全局变量是可以被删除的)
var num1 = 10;
num = 20;
delete num1;
delete num2;
console.log(typeof num1); // number
console.log(typeof num2); // undefined
局部变量:函数内部用 var 定义的变量和形参。
作用:查看语法错误。js的解析器在页面加载的时候,首先检查页面上的语法错误。把变量声明提升起来。变量声明提升和函数整体提升。
只提升变量名,不提升变量值。
consolas.log(aaa);// 打印的结果是 undefined ,因为只提升变量名,不提升变量值。
var aaa = 111;
在函数范围内,照样适用。
function 直接定义的方法:整体提升(上面说的第一种函数定义的方法).
fn();
var aaa = 111;
function fn(){
//变量声明提升在函数内部照样实用。
//函数的就近原则(局部变量作用域),打印的aaa不是111,而是 undefined。
console.log(aaa); // undefined
var aaa = 222;
}
预解析会分块:
多对的 script 标签中函数重名的话,预解析不会冲突。也就是预解析的作用域是每一个的 script 标签。
var先提升,function再提升:
示例:
console.log(a); // 输出a函数体
function a() {
console.log("aaaaa");
}
var a = 1;
console.log(a); // 输出1
打印第一个结果的时候,var会提升,之后 function 再提升,但是函数a和变量a重名,function的a在后面覆盖掉变量a,所以第一个输出 a 函数体.
第二个前面var a = 1;提升之后,这个位置就相当于只有 a = 1; 赋值,所以第二个打印1.
//1.直接调用
(function (){
console.log(1);
})();
//2.绑定事件
document.onclick = function () {
alert(1);
}
//3.定时器
setInterval(function () {
console.log(444);
},1000);
微信关注我们
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。
Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。