\section{JavaScript核心语法}\subsection{注释}JavaScript的注释和CSS注释类似,分多行和单行,多行注释使用/* ... */,如:\begin{lstlisting}/*Everything in between is a comment.*/\end{lstlisting}单行注释使用"//"表示,如:\begin{lstlisting}// This is a comment\end{lstlisting}\subsection{变量}所谓变量就是程序中数据的临时存放场所。JavaScript的变量定义都是使用"var"关键字,示例如下:\begin{lstlisting}var author = "yangjh";var age = 35;var Age = 36;var male = true;\end{lstlisting}上述三行代码中,var关键字表示声明变量,变量名紧跟其后,通过等于号将变量赋予变量初始值。每一行结束的分号可以不写,但书写分号后,能增强代码的可读性。变量的名称必须遵循以下规则:\begin{enumerate}\item 首字符必须是字母、下划线或美元符号。\item 其余字母可以是下划线、美元符号、任意字母或者数字。\item 变量名称不能是关键字或保留字,具体保留字的内容参见附录\ref{JavaScript保留字}。\item 变量名对大小写敏感,例如:变量age和Age是不同的变量。\item 变量名中不能有空格、回车符或其他标点字符。\end{enumerate}\subsection{常量}常量意味着其中保存的值是固定不变的,JavaScript使用关键字const声明常量,习惯上,常量名称使用大写字母。\begin{lstlisting}const A = 7;console.log("A is " + A + ".");\end{lstlisting}上面的例子将输出 "A is 7."。\subsection{运算符}运算符用于将一个或多个值运算成结果。在Javascript中,常用的运算符有以下几种类别:\subsubsection{算术运算符}算术运算符能对操作数进行运算,返回一个数值型的值。常见的有"+"、"-"、 "*"、"/"。\subsubsection{关系运算符}关系运算符(见\ref{tab:关系运算符})通常用于检查两个操作数之间的关系,返回值为true或false。\begin{table}[htbp]\centering\caption{关系运算符}\begin{tabular}{llll}\toprule运算符 & 说明 & 例子 & 结果\\\midrule== & 是否相等 & 5=="5" & TRUE \\=== & 是否全等 & 5=="5" & FALSE \\!= & 是否不等 & 5!="5" & FALSE \\!== & 是否不全等 & 5!="5" & TRUE \\> & 是否大于 & 5>8 & FALSE \\< & 是否小于 & 5<8 & TRUE \\>= & 是否大于等于 & 5>=8 & FALSE \\<= & 是否小于等于 & 5<=8 & TRUE \\\bottomrule\end{tabular}\label{tab:关系运算符}\end{table}\subsubsection{赋值运算符}赋值运算符是使用最多的运算符,常见的赋值运算符就是"=",它将右边的值赋与等号左边的变量。\subsubsection{逻辑运算符}逻辑运算符用来判断操作数之间的逻辑关系,返回值为true和false。javascript支持一下三种逻辑运算符(见\ref{tab:逻辑运算符})。\begin{table}[htbp]\centering\caption{逻辑运算符}\begin{tabular}{llll}\toprule\multicolumn{1}{c}{运算符} & \multicolumn{1}{c}{说明} & \multicolumn{1}{c}{例子} & \multicolumn{1}{c}{结果} \\\midrule\&\& & 逻辑与 & 5>3 \&\& 4>3 & TRUE \\|| & 逻辑或 & 5>3 || 3>5 & FALSE \\! & 逻辑非 & !(3>5) & TRUE \\\bottomrule\end{tabular}%\label{tab:逻辑运算符}%\end{table}%\subsubsection{连接运算符}连接运算符"+"能将字符串连接起来构成一个新的字符串。如:\begin{lstlisting}var txt1 = "JavaScript";var txt2 = "基础教程";var txt3 = txt1 + txt2;\end{lstlisting}变量txt3的结果是"JavaScript基础教程"。\subsection{流程控制}和其他语言一样,JavaScript也是由上到下逐行执行代码,还可以通过分支、循环改变执行流程。\subsubsection{语句块}语句块用来组织多条语句。用一对花括号界定语句块。语法如下:\begin{lstlisting}{statement_1;statement_2;...statement_n;}\end{lstlisting}注意语句块不是以分号结尾。语句块常在流程控制语句中使用。\subsubsection{if...else}根据设定条件,选择性地执行语句,当指定条件为true时会执行一条语句,如果该条件为false,则执行另一条语句。\begin{lstlisting}if (condition) {statements1} else {statements2}\end{lstlisting}\subsubsection{switch}switch 语句对一个表达式求值,将结果与 case 子语句比较,如果匹配,则从 case 处的语句向下执行。\begin{lstlisting}switch (expression) {case value1:// 当 expression 的结果与 value1 匹配时,从此处开始执行statements1;[break;]case value2:// 当 expression 的结果与 value2 匹配时,从此处开始执行statements2;[break;]...case valueN:// 当 expression 的结果与 valueN 匹配时,从此处开始执行statementsN;[break;]default:// 如果 expression 与上面的 value 值都不匹配时,执行此处的语句statements_def;[break;]}\end{lstlisting}switch语句中的break语句,能保证程序执行到该语句时,不再执行后续语句,而是跳出switch语句块。\subsubsection{for}for语句创建一个包含初始条件、终止条件和步进规则的循环体。例如下面的代码将循环10次(从0-9),然后在控制台中打印出0-9的数字:\begin{lstlisting}for (var i = 0; i < 9; i++) {console.log(i);// more statements}\end{lstlisting}\subsubsection{while}while 语句可以在某个条件表达式为真的前提下,循环执行指定的一段代码,直到那个表达式不为真时结束循环。语法如下:\begin{lstlisting}while (condition) {statement}\end{lstlisting}\subsubsection{do...while}do...while 语句创建了一个循环,该循环执行一个指定的语句直到condition 的值为 false。 condition 在执行statement后才会被赋值,statement至少执行一次。语法如下:\begin{lstlisting}do {statement;...}while (condition);\end{lstlisting}\subsection{函数}使用关键字function声明一个函数。函数还可有参数和返回值。\begin{lstlisting}function name([param,[, param,[..., param]]]) {[statements]}\end{lstlisting}参数可以是常量、变量或表达式,多个参数之间用逗号隔开。若函数需要返回值,使用return语句。默认情况下,函数是返回 undefined 类型。想要返回一个其他的值,函数必须通过一个 return 语句指定返回值。定义函数的时候,并不会执行构成该函数的任何语句。只有当调用该函数时,函数里面的语句才会执行,直到碰到return语句,return语句之后的内容不会被执行。\subsubsection{回调函数}回调函数\subsection{对象}Javascript 中对象(object)的概念可以比照着现实生活中实实在在的物体来理解。在JavaScript中,一个对象可以是一个单独的拥有属性和类型的实体。我们拿它和一个杯子做下类比。一个杯子是一个对象(物体),拥有属性。杯子有颜色,图案,重量,由什么材质构成等等。同样,javascript对象也有属性来定义它的特征。一个对象就是一系列属性的集合,一个属性包含一个名字和一个值。一个属性的值可以是函数,这种情况下属性也被称为方法。在 JavaScript 中,几乎所有的东西都是对象。所有的原生类型除了 null 与 undefined 之外都被当作对象。它们可以被赋予属性,并且它们都有对象的全部特征。\subsubsection{对象的创建}JavaScript 拥有一系列预定义的对象。另外,我们可以通过对象初始化器(Object Initializer)创建自己的对象。或者通过创建一个构造函数并使用该函数和 new 操作符初始化对象。通过对象初始化器创建对象的方法如下:\begin{lstlisting}var obj = { property_1: value_1, // property_# may be an identifier...property_2: value_2, // or a number...// ...,"property n": value_n }; // or a string\end{lstlisting}这里 obj 是新对象实例的名称,每一个 property\_i 是一个标识符(可以是一个名称、数字或字符串字面量),并且每个 value\_i 是一个其值将被赋予 property\_i 的表达式。属性的集合用{}标记,通过点符号来访问一个对象的属性。对象有时也被叫作关联数组, 因为每个属性都有一个用于访问它的字符串值。如:\begin{lstlisting}obj['property_1'] = value1;obj[0] = value1;\end{lstlisting}但显然,用方括号访问对象属性的方式不如使用点符号的方式简洁。通过new运算符创建对象的示例如下:\begin{lstlisting}var author = new Object();author.words = '绿叶恋爱时便成了花';console.log(author.words);\end{lstlisting}new运算符的作用是创建一个对象实例。单纯的使用new运算符创建对象实例的方式不够灵活,尤其是要创建对象的多个实例时,需要逐一完成对象属性的赋值工作。因此,常通过构造函数和new运算符的结合创造对象,这种对象创造方法能在创造对象的同时完成对象属性的赋值。构造函数,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,与new运算符一起使用在创建对象的语句中。通过构造函数和new运算符创建对象的例子:\begin{lstlisting}function student(sName, sex, major) {this.sName = sName;this.sex = sex;this.major = major;}var student1 = new student('小明', '男','新媒体');\end{lstlisting}其中的this关键字指代对象本身。\subsubsection{对象属性的枚举}在有些情况下,开发人员并不了解对象的内部属性,这时可以使用for...in语句枚举对象的所有属性。如下例所示:\begin{lstlisting}for(var i in student1) {console.log(i + "=" + student1[i]);}\end{lstlisting}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。