志达IT
做快乐程序员

javascript里的if语句(javascript语言入门)

javascript里的if语句

三大结构一般运用的时分是彼此嵌套的
1:次序结构:代码从上往下依次履行
2:挑选(条件)结构
3:循环结构
if挑选句子:
单一挑选结构:
if(条件){
代码块;
}
二路挑选结构:
if(条件){
代码块;
}else{
代码块2;
}
假如if、else代码块的句子只要一句话则能够省掉花括号,假如代码块中有多条句子则不能省掉花括号
三目运算符:(简写的二路挑选结构)
表达式1判别句子表达式2?成果1:成果2
假如if(){}else{}有多条句子,就不能运用三目运算符
多路挑选结构:
if(条件1){
成果1;
}elseif(条件2){
成果2;
}
……
else{
成果n;
}
例1:用户输入自己的考试成绩,提示用户是否及格。假如及格了,弹出正告框“祝贺,你及格了”、“不要骄傲啊”。假如没有及格,那么弹出正告框“很遗憾,你没有及格”、“请继续努力啊”
例2:请输入一个年份,判别这个年份是平年仍是润年
闰年:能被4整除且不能被100整除或许能够被400整除
例3:判别一个整数,归于哪个规模:大于0;小于0;等于0
例4:判别一个整数是偶数仍是奇数,并输出判别成果
例5:输入两个数,依照从小到大的次序输出
例6:输入任意三个数,输出最大值javascript
总结
1.ifelseelseif里边的代码只要一行能够省掉{}
2.if后边不一定要带else或许elseif
3.if里边的表达式假如不是对应的boolean的表达式他会强制转换为boolean类型(自动转换)
4.else一定的是最终的并且他是不带条件的
5.if里边能够嵌套if以及相关的内容(elseelse都能够嵌套的)
6.switch里边填写的表达式是会返回值这个值一般是常量
7.switch里边有case和对应的defaultcase表明一个个的选项对应的default表明默许选项
8.多个case能够在一行书写表明对应的处理句子是一个
9.break用于跳出整个代码块
10.跳出switch(也能够跳出循环的代码块)
11.switch有必要要有规定的值的时分才有他不会运用到有区间的内容(比对是恒等比对)
12.if是能够运用区间值也能够运用固定值
13.if功率和switch功率从一行代码区别对应的来说if功率会高点多行代码区别switch功率会高(用
空间换时间)

javascript语言入门

JavaScript是世界上最流行的脚本言语,是一种运行在浏览器中的解释型的编程言语,能够完结跨渠道、跨浏览器。尽管仅仅十多天时间的产品,并且有许多的缺陷和圈套,但也造就了JavaScript的灵敏和强大。随着Node.js的兴起,JavaScript现已从单纯完结前端互动,发展到能够全栈完结整个应用。尤其是在移动互联网蓬勃发展以及应用寻求极致用户体会的今日,JavaScript更是必须要注重和掌握的。
二、变量
1、变量的声明
运用var关键字进行变量的声明,声明的同时也能够进行赋值。变量的声明只能有一次,但赋值能够有多次。假如只声明变量,可是变量没有被赋值,此刻变量的值为undefined。
vars=”Hello”;
由于JavaScript归于动态言语,所以在界说变量时,不需求指定变量的类型。能够把恣意数据类型赋值给变量,同一个变量能够运用不同的数据类型重复赋值。
2、变量的提高
依据JavaScript的规矩,变量的声明会被提高,可是变量的初始化并不会被提高。函数外声明的变量,会被提高到文档顶部。函数内声明的变量,会被提高到函数顶部。
functionf(){varx=1+y;alert(x);vary=2;}alert(x);
假如变量在函数内没有声明,该变量会被提高为大局变量。
functionf(){x=1;}alert(x);
3、变量的效果域
假如变量在函数内声明,则该变量的效果域为整个函数体,在函数外不行拜访,归于局部变量。
functionf(){varx=1;}alert(x);
函数能够嵌套,内部函数能够拜访外部函数界说的变量,反之则不行。
functionouter(){varx=1;functioninner(){vary=x+1;alert(y);}varz=y+1;alert(z);}
假如内部函数与外部函数界说了相同的变量,依据就近准则,内部函数的变量会掩盖外部函数的变量。
functionouter(){varx=1;functioninner(){varx=2;alert(x);}}javascript
三、函数
1、函数的界说
界说函数有两种办法:声明和表达式。
1.1函数声明
functionfunction_name(parameters){……}
函数声明后不会马上履行,只要被调用的时分才会履行。
1.2函数表达式
varf=function(parameters){……};f(parameters);
将函数存储在变量中,之后能够经过变量名来调用,而不需求函数称号。
2、函数的参数
函数有个内置的目标arguments,包含了函数调用的一切参数。
参数有两种传递办法:值传递和引证传递。
2.1值传递
函数仅仅获取参数值,假如修正参数的值,不会改动参数的原始值,在函数外是不行见的。
2.2引证传递
函数取得的是目标的引证,在函数内部修正目标特点时,会改动特点的原始值,在函数外可见。
3、函数的调用
函数能够经过四种办法进行调用。
3.1自我调用
函数表达式,假如后面紧跟(),则会自动自我调用。声明的函数不能自我调用。
(function(){alert(“Hello”);})();
3.2作为函数被调用
当函数没有被其他目标调用时,函数默许是window大局目标的函数。此刻this的值是window大局目标。
functionf(){alert(“Hello”);returnthis;};f();
3.3作为办法被调用
能够将函数界说为目标的办法,该目标是函数的一切者。当运用目标调用办法时,此刻的this值指向调用函数的目标。
varobj={x:1,y:2,f:function(){returnthis.x+this.y;}};obj.f();
3.4作为结构函数被调用
假如运用new关键字,实践是创立了一个新的目标。新目标会承继结构函数的特点和办法。此刻this值指向新创立的目标。为了区别一般函数和结构函数,约定结构函数的首字母为大写。
functionF(x,y){this.x=x;this.y=y;};varobj=newF(1,2);
3.5call和apply
函数是一个目标,能够调用call或apply办法。此刻this值指向办法传递的目标。
functionf(x,y){returnx+y;};arr=[1,2];f.call(obj,1,2);f.apply(obj,arr);
call和apply办法的唯一区别便是前者传递整个参数列表,而后者传递一个参数数组。
4、闭包
内嵌函数能够拜访上一层函数的变量。闭包是能够拜访上一层函数效果域里变量的函数。假如上一层函数回来闭包函数,那么就能够在上一层函数的外部拜访该函数的私有变量。运用闭包,能够完结调用公共办法,拜访私有变量。
此刻回来的函数并没有马上履行,只要在调用回来函数时才真实履行。由于回来函数不会马上履行,所以回来函数不要引证循环变量或后续会产生变化的变量。不然,在真实履行的时分,引证的变量或许现已产生改动。
假如必须引证的话,能够再创立一个函数,用该函数的参数绑定循环变量的值。这样,循环变量的值尽管产生了改动,但绑定到参数的值不会随之改动。
四、目标
1、目标的界说
目标的界说有两种办法。
由若干键值对组成,并将其赋值给一个变量。
varperson={name:”sean”,age:”20″,sayHello:function(){alert(“Hello”+name);}};person.sayHello();
运用函数界说目标,然后创立新的目标实例。
functionperson(name,age){this.name=name;this.age=age;};varp=newperson(“sean”,20);
2、特点和办法
由于JavaScript的目标是动态类型,所以能够给一个目标增加或删去特点。当拜访的特点不存在时,会回来undefined。假如要判别一个特点是否归于某目标,能够运用in操作符。这里要注意的是,该特点或许是目标承继得来的。假如要判别一个特点是否归于某目标自身,能够运用hasOwnProperty办法。
3、原型
尽管JavaScript能够面向目标编程,但一切的目标都是实例,不会区别类和实例的概念。要想完结类的概念,就需求凭借原型。
首要创立一个相当于类概念的目标实例。
varperson={name:””,age:””,sayHello:function(){alert(“Hello”+this.name);}};
然后创立一个新的目标实例,使其依靠这个原型。
varsean={name:”sean”};sean.__prototype__=person;sean.sayHello();
也能够运用Object.create()办法,传入一个原型目标,并创立一个基于该原型的新目标。
varsean=Object.create(person);sean.name=”sean”;sean.sayHello();
4、创立目标
JavaScript对每个创立的目标都会设置一个原型,指向该目标的原型目标。除了直接创立一个目标外,还能够运用结构函数来创立目标。运用结构函数创立的目标,会从原型取得一个constructor特点,该特点指向结构函数本身。
5、原型链
当拜访一个目标的特点时,首要在当时目标上查找该特点。假如没有找到,就到其原型目标上查找。假如还没有找到,就一直上溯到Object的原型目标。假如还没有找到,就回来undefined。这样就形成了一条原型链。
由于函数也是目标,所以函数也具有原型链。首要是函数本身,然后是Function.prototype,最终是Object.prototype。
6、承继
承继不仅仅是目标的特点和办法的承继,原型链也要体现出承继关系。
首要,界说新的结构函数,并在内部调用希望承继的结构函数,完结特点和办法的承继。
其次,凭借中间函数,将新的结构函数的原型指向承继的结构函数的原型,完结原型链承继。
最终,将新的结构函数的constructor特点从头指向新的结构函数。
7、浏览器目标
window目标不行是大局目标,还表明浏览器窗口。
特点innerWidth和innerHeight别离表明浏览器窗口的内部宽度和高度,即用于显示网页的净宽高。特点outerWidth和outerHeight别离表明浏览器窗口的整个宽度和高度。
navigator目标表明浏览器的信息。特点appName表明浏览器称号。特点appVersion表明浏览器版别。特点language表明浏览器设置的言语。特点platform表明操作系统类型。特点userAgent表明浏览器设定的User-Agent字符串。
screen目标表明屏幕的信息。特点width表明屏幕宽度,单位是像素。特点height表明屏幕高度,单位是像素。特点colorDepth表明颜色位数。
location目标表明当时页面的URL信息。特点href表明整个URL。特点protocal表明运用的协议。特点host表明主机名。特点port表明端口号。特点pathname表明拜访的途径。特点search表明查询参数。办法assign加载一个新页面。办法reload重载当时页面。
document目标表明当时页面。特点title表明浏览器窗口的标题。特点cookie获取当时页面的Cookie。办法getElementById依照元素的id获取一个DOM节点。办法getElementByTabName依照元素的标签称号获取一组DOM节点。
history目标保存浏览器的历史记录。
五、DOM
当页面被加载时,浏览器解析HTML文档,并会创立页面的文档目标模型DOM。DOM是一个树形结构,经过操作DOM节点,能够拜访或改动文档的一切元素。针对DOM的操作主要有四种:查找、更新、刺进、删去。
1、查找
要想操作DOM节点,首要需求找到要操作的节点。
经过id查找
调用document.getElementById办法查找指定id的元素。
经过标签名查找
调用document.getElementByTagName办法查找指定标签名的一切元素。
经过类名查找
调用document.getElementByClassName办法查找指定class的一切元素。
Tips:要精确地定位DOM,能够先定位父节点,再逐步缩小规模。
2、更新
定位好节点之后,就能够进行更新操作。
修正innerHTML特点
不光能够修正一个DOM节点的文本内容,还能够经过HTML片段修正DOM节点内部的子树。
修正innerText或textContent特点
能够对字符串进行HTML编码,确保无法设置任何HTML标签。这两个特点的区别是前者不回来隐藏元素的文本,而后者则回来一切文本。
修正style特点
能够用来设置CSS样式。假如是无效的特点名,能够在JavaScript中运用驼峰式命名特点。
3、刺进
能够刺进新的节点,然后改动DOM结构。
appendChild办法
把一个子节点增加到父节点的最终一个子节点。假如子节点现已存在,会先从原来的方位删去,然后再刺进到新的方位。通常会新创立一个节点,然后刺进到指定方位,完结动态增加节点。
insertBefore办法
父节点会将新建的子节点刺进到参照节点之前。
4、删去
能够删去节点,然后改动DOM结构。
removeChild办法
首要取得要删去的节点和它的父节点,然后调用父节点的办法将其删去。遍历父节点的子节点并进行删去操作时,父节点的children特点会在子节点产生变化时实时更新,需求特别注意。
六、异步处理
JavaScript言语是单线程的,一次只能完结一个使命。好处是完结简略,害处是假如有使命耗时很长,其他的使命就必须得排队等候,直到该使命完结。导致的成果便是造成浏览器无响应,其他使命无法履行,体会极差。
因而,JavaScript言语分红两种使命履行形式:同步和异步。所谓同步,便是指程序的履行次序与使命的摆放次序是一致的、同步的。所谓异步,是指每个使命有一个或多个回调函数,后一个使命无需等候前一个使命完结就可履行,当时一个使命完结后,履行回调函数。这样,程序的履行次序与使命的摆放次序是不一致的、异步的。
1、回调函数
这是异步处理最常用的的办法。
两个同步履行的函数:
f1();
f2();
两个异步履行的函数:
functionf1(callback){setTimeout(function(){//f1的使命代码callback();},1000);}f1(f2);
回调函数的优点是简略、简单理解。缺陷是不利于阅览和维护、高耦合、流程紊乱,每个使命只能指定一个回调函数。
2、事情监听
选用事情驱动形式,由事情来决定要进行的处理,而不是代码的次序。
为f1绑定一个事情,当f1产生done事情,就履行f2:
f1.on(‘done’,f2);
履行完结后,当即触发done事情,然后开始履行f2:
functionf1(){setTimeout(function(){//f1的使命代码f1.trigger(‘done’);},1000);}
事情监听的优点是简单理解,能够绑定多个事情,每个事情能够指定多个回调函数,低耦合。缺陷是流程不行明晰。
3、发布/订阅
与事情监听类似。某个使命履行完结之后,会发布一个信号,其他使命能够订阅这个信号,然后知道什么时分能够开始履行。又称为观察者形式。
订阅信号:
jQuery.subscribe(“done”,f2);
发布信号:
functionf1(){setTimeout(function(){//f1的使命代码jQuery.publish(“done”);},1000);}
取消订阅:
jQuery.unsubscribe(“done”,f2);
能够了解存在多少信号、每个信号有多少订阅者,然后监听程序的运行。
4、Promises目标
该目标是CommonJS提出的一种标准,旨在为异步编程提供一致接口。
每一个异步使命回来一个Promises目标:
functionf1(){vardfd=$.Deferred();setTimeout(function(){//f1的使命代码dfd.resolve();},500);returndfd.promise;}
该目标有一个then办法,能够指定回调函数:
f1().then(f2);
优点是回调函数能够运用链式写法,流程明晰,并且假如一个使命现已完结,再增加回调函数,该回调函数会马上履行。缺陷是编写和理解比较困难。

赞(0)
未经允许不得转载:志达IT网站 » javascript里的if语句(javascript语言入门)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

志达IT网站 每天分享编程和互联网的IT技术博客

登录/注册联系我们