一、 声明语句

var和function都是声明语句。声明或定义变量或函数。

var

声明一个或者多个变量。语法如下:

 var a ;
var b = 1;
var c, d;
var e = 3; f = 5

如果var语句出现在函数体内,那么他定义的是一个局部变量。它的作用域就是这个函数。

如果在顶层代码中使用var语句,则声明的是一个全局变量。全局变量是全局对象的属性。var声明的变量无法通过delete删除的。

如果var定义的变量没有初始化表达式,那么这个变量的值初始化时undefined

function

关键字function用来定义函数

var f = function(x) {
return x+1
}
//将表达式赋值给一个变量
function(x) {
return x+1
}
//含有变量名的语句

函数声明语句通常只出现在JS代码的最顶层,也可以嵌套在其他函数体内。但在嵌套时,函数声明只能出现在所嵌套的顶部。不能定义在if语句,while循环或者其他任何语句中。

二、条件语句

if

if语句是一种基本的控制语句。举个栗子:

var age = 18
if(age < 19) {
console.log("123456")
}
// var life = 60;
if (life >= 70) {
console.log('233333') }else { console.log('--------')
}
//----------

三、循环语句

while

同jf一样是基本的控制语句。举个栗子:

var a = 0;
while(a < 10) {
console.log(a)
a++
}

do/while

do/while和while非常相似,只不过它是在循环的尾部而不是顶部检测循环表达式,这就意味着循环体至少会执行一次。举个栗子:

var text = ""
var i = 0;
do {
text += "<br>数字为 " + i;
i++;
}
while (i < 5) {
document.getElementById("demo").innerHTML = text;
}

for

for循环语句的语法如下:

for (initialize;test;increment) {
content
}
//initialize,test,increment 三个表达式之间用分号分隔,分别负责初始化操作、循环条件和计数器变量的更新

举个for循环的栗子(相信这个栗子大多数都能看的明白233333333):

//遍历0-9之间的数字
for ( var i = 0; i < 10; i++ ){
console.log(i)
}
//
//
//
//
//
//
//
//
//
//

for/in

for/in语句也是用for关键字。举个栗子:

var person = {
a:"John",
b:"Doe",
age:25
}; var text = "";
var x;
for (x in person) {
text += person[x];
} //person 是一个表达式,是一个对象

break语句

单独使用break语句的作用是立即退出最内层的循环或者switch语句。语法如下:

break;

attention: 在循环中,不论出现什么原因,只要不想继续执行整个循环,就可以用break来提前退出。

当循环终止条件非常复杂时,在函数体内使用break语句实现这些条件判断的做法要比直接在循环表达式中写出这个复杂终止条件的做法简单很多。

continue 语句

continue语句和break语句非常类似,但是它不是退出循环,而是转而执行下一次循环。

当执行到continue语句的时候,当前的循环逻辑就终止了,随即执行下一次循环,在不同类型的循环中,continue的行为也有所区别:

在while循环中,在循环开始处指定的expression会重复检测,如果检测结果为true,循环体会从头开始执行。

在do/while循环中,程序的执行直接跳到循环结尾处,这时会重新判断循环条件,之后才会继续下一次循环。

在for循环中,首先计算自增表达式,然后再检测test表达式,用以判断是否执行循环体。

在for/in循环中,循环开始遍历下一个属性名,这个属性名赋给了指定的变量。

continue语句在while和for循环中的区别:

while直接进入下一轮的循环条件判断,但for循环首先计算increment表达式,然后判断循环条件

return语句

return语句是指定函数调用的返回值。return语句的语法如下:

return;

return语句只能在函数体内出现,如果不是的话会报语法错误,当执行到return语句的时候,函数终止执行,并且返回expression的值给调用程序

function www(x) {
return x*x //一个包含return的函数 }
www(5); //结果为25

如果没有return语句,则函数调用仅次于执行函数体内的每一条语句直到函数结束

debugger语句

debugger通常什么都不做,然而,当调试程序可用并运行的时候,JS解释器将会(非必须)以调试模式运行。实际上,这条语用来产生一个断点(breakpoint)JS代码的执行会停止在断点的位置,这时可以使用调试器输出变量的值、检查调用栈等。

use strict

use strict是ECMAScript5引入的一条指令。目的是说明(脚本或者函数中)后续的代码将会解析为严格代码。

如果顶层使用了这个指令,那么既是严格模式。

严格模式和非严格模式的区别如下:

1 在严格模式中禁止使用with语句

2 在严格模式中,所有的变量要先声明

3 在严格模式中,调用的函数(不是方法)中的this值是undefined。(在非严格模式下,调用的函数中的this值总是全局对象),可以利用这种特性来判断JS实现时是否支持严格模式;

var hasStrictModel = (function () {
'use strict;
return this === undefined
}());

4 在严格模式中,当通过call()或者apply()来调用函数时,其中的this值就是通过call()或apply()传入的第一个参数(在非严格模式中,null和undefined值被全局对象和转换为对象的非对象值所代替)

5 在严格模式中,给只读属性和不可拓展的对象创建新成员都将抛出一个类型错误

javaScript基础-03 javascript语句的更多相关文章

  1. javascript基础03

    javascript基础03 1. 算术运算符 后增量/后减量运算符 ++ ,-- 比较运算符 ( >, <, >=, <=, ==, !=,===,!== ) 逻辑运算符( ...

  2. 2021年3月-第03阶段-前端基础-JavaScript基础语法-JavaScript基础第01天

    1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌 ...

  3. JavaScript基础02-条件语句及介绍函数

    条件语句 if  和  if - else  语句 if(你还没睡着么?){ 是 那我们去撸串--- } 当条件判断为真true时,执行花括号内的语句,如果条件为假false,跳过花括号内的语句 if ...

  4. javaScript系列 [03]-javaScript原型对象

    [03]-javaScript原型对象 引用: javaScript是一门基于原型的语言,它允许对象通过原型链引用另一个对象来构建对象中的复杂性,JavaScript使用原型链这种机制来实现动态代理. ...

  5. javaScript基础-01 javascript语法结构

    一.基础 字符集 JavaScript程序是用Unicode字符集编写的. .区分大小写 .空格.换行符和格式控制符 .Unicode转义序列 .标准化 二.类型.值和变量 JavaScript的数据 ...

  6. JavaScript基础4——关于语句流程控制(分支语句、循环语句等)

    分支语句 (1)if...else...语句,基本格式分三种,如下 <script type="text/javascript"> var i=50; //if语句 i ...

  7. JavaScript基础——变量、语句、注释

    一.变量的命名规则 1.变量名由数字.字母.下划线组成 2.变量名的首字母不能是数字,只能是字母或者下划线 3.不能使用关键字和保留字作为变量名 4.变量严格区分大小写,例如在JavaScript中o ...

  8. JavaScript基础-03

    1. 条件判断语句 若条件成立才会执行,条件不成立则语句不执行: if语句 语法一: if(条件表达式) {语句}          :true就执行,false不执行: 语法二: if(条件表达式) ...

  9. JavaScript基础03——函数的作用域及变量提升

    1.作用域 作用域,变量在函数内部作用的范围/区域.有函数的地方就有作用域.   2.局部作用域和全局作用域 function fn(){ var a = 1; } console.log(a); / ...

随机推荐

  1. CS程序和BS程序文字转语音

    一.项目中一直用到了文字转语音的功能,需求也比较简单,就是将一段报警信息通过语音的方式播放出来,之前一直采用CS客户端,利用微软自带的Speech语音播放库就可以完成, 1.1 封装winSpedk类 ...

  2. P2344 奶牛抗议 离散化+前缀和+动态规划+树状数组

    [题目背景] Generic Cow Protests, 2011 Feb [题目描述] 约翰家的N 头奶牛正在排队游行抗议.一些奶牛情绪激动,约翰测算下来,排在第i 位的奶牛的理智度为Ai,数字可正 ...

  3. 【模拟】(正解树状数组)-校长的问题-C++-计蒜客

    描述 学校中有 n 名学生,学号分别为 1 - n.再一次考试过后,学校按照学生的分数排了一个名次(分数一样,按照名字的字典序排序).你是一名老师,你明天要和校长汇报这次考试的考试情况,校长询问的方式 ...

  4. java中this 和 super关键字的作用

    emmmmmm也真的是好久没有写过java了,因为项目需要, 最近又必须重新拾起来了,虽然好多东西也都忘得差不多了.... 然后发现 竟然把super和this傻傻分不清.... 开个帖子记录一下: ...

  5. Excel催化剂开源第40波-Excel插入图片做到极致的效果

    不知道是开发人员的自我要求不高还是用户的使用宽容度足够大,在众多Excel插入图片的版本中,都没有考虑到许多的可大幅度提升用户体验的细节处理. Excel催化剂虽然开发水平有限,但也在有限的能力下,尽 ...

  6. 题解 P2272 【[ZJOI2007]最大半连通子图】

    P2272 [ZJOI2007]最大半连通子图 萌新初学Tarjan,在<信息学奥赛一本通-提高篇>中看到这题,看到题解不多,便想发布一篇较为清新简洁的题解.--第5道紫题 题目大意: 定 ...

  7. SpringBoot第二十二篇:应用监控之Actuator

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11226397.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   很多文章都 ...

  8. [leetcode] 72. Edit Distance (hard)

    原题 dp 利用二维数组dp[i][j]存储状态: 从字符串A的0~i位子字符串 到 字符串B的0~j位子字符串,最少需要几步.(每一次删增改都算1步) 所以可得边界状态dp[i][0]=i,dp[0 ...

  9. 小白开学Asp.Net Core 开篇

    开学Asp.Net Core 开篇 一.准备工作 1.操作环境:Win10 2.开发工具:VS2019 3.运行环境:.Net Core 2.2 4.数据库:SqlServer2012 二.项目搭建 ...

  10. 2019牛客多校第二场D-Kth Minimum Clique

    Kth Minimum Clique 题目传送门 解题思路 我们可以从没有点开始,把点一个一个放进去,先把放入一个点的情况都存进按照权值排序的优先队列,每次在新出队的集合里增加一个新的点,为了避免重复 ...