怎么做有数据库的网站,电子商务网站系统建设实训心得,点餐系统网站建设,潜江资讯网最新招聘一、基础语法
1、区分大小写#xff1a;无论是变量、函数名还是操作符#xff0c;都区分大小写。
2、标识符#xff1a;就是变量、函数、属性或函数参数的名称。标识符可以由一个或多个字符构成#xff0c;但需要满足以下条件#xff1a;
第一个字符必须是一个字母、下…一、基础语法
1、区分大小写无论是变量、函数名还是操作符都区分大小写。
2、标识符就是变量、函数、属性或函数参数的名称。标识符可以由一个或多个字符构成但需要满足以下条件
第一个字符必须是一个字母、下划线_或美元符号$;
剩下的其他字符可以是字母、下划线、美元符号或数字。
命名规范——驼峰大小形式即第一个单词的首字母小写后面每个单词的首字母大写。
注意事项关键字、保留字、true、false、null不能作为表示符。
3、注释和C语言一样
4、严格模式严格模式是一种不同的javascript解析和执行模型一些不规范写法在这种模式下会被处理对于不安全的活动将抛出错误。要对整个脚本启用严格模式在脚本开头加上这一行
use strict
5、语句脚本中语句以分好结尾省略分号意味着由解析器确定语句在哪里结尾。即使语句末尾分好不是必需的也应该加上。
多条语句可以合并到一个C语言风格的代码块中代码块由一个左花括号{表示开始一个右花括号“}标识结束。
例如
if (test){
testfalse;
console.log(test);
} 二、关键字与保留字
javascript中规定了一组保留的关键字这些关键字有特殊用途比如表示控制语句的开始和结束或者执行特定的操作。按照规定保留的关键字不能用作标识符或属性名。 三、变量
javascript变量可以用于保存任何类型的数据。每个变量只不过是一个用于保存任意值命令的占位符。有3个关键字可以声明变量var、const和let。其中var在javascript所有版本中都可以使用但是const和let只能在javascript6及更晚版本中使用。 1、var关键字
要定义变量可以使用var操作符注意var是一个关键字后跟变量名即标识符
var message
这行代码定义了一个名为message的变量可以用它保存任何类型的值。不初始化的情况下变量会保存一个特殊值undefined。同时我们可以在变量定义的时候就进行初始化
var messagexincun
这里message被定义为一个保存字符值xincun的变量。像这样初始化变量不会将它标识为字符串类型只是一个简单的赋值而已。随后不仅可以改变保存的值也可以改变值的类型
注意事项同一个变量虽然可以赋值成不同类型的数据但是不推荐这样做。 2、var声明作用域
使用var操作符定义的变量会成为包含它的函数的局部变量。比如使用var在一个函数内部定义一个变量就意味着该变量将在函数退出时被销毁。
如
function test() {
var messagexincun ;//局部变量
}
test
console.log(message); //出错因为是在函数中定义的局部变量在函数外未定义所以报错 在函数定义变量时省略var操作符可以创建一个全局变量
function test() {
messagexincun;
}
test();
console.log(message); //“xincun”(去掉var操作符后message就变成了全局变量) 注意事项
在同一个脚本中不建议通过省略var定义全局变量在局部作用域中定义的全局变量很难维护也会造成困惑。在严格模式下use strict未声明变量赋值则会导致抛出RerenceError。定义多个同一类型的变量类型变量使用逗号隔开。 3、var声明提升
在javascript中使用var关键字声明的变量会自动提升到函数作用域顶部即所有变量声明都拉到函数作用域的顶部此外重复的对同一个变量进行声明是没有问题的就更新变量值。
function age() {
console.log(age);
var age20;
var age22;
}
foo(); //undefined (之所以不会报错是因为javascript运行时把它等价为如下代码) function foo() {
var age;
console.log(age);
age89;
}
foo(); letl声明变量声明的范围是块作用域(比如if语句的作用范围就是块作用域而var声明的变量范围是函数作用域。 const的行为与let基本相同唯一一个重要的区别是用它声明变量时必须同时初始化变量并且尝试修改const声明的变量会导致运行时错误。
四、数据类型
javascript有6种简单数据类型undefined,null,boolean,number,string,symbol。 1、typeof操作符
typeof操作用来确定任意变量类型。
“undefined”:表示值未定义
“boolean”表示值为布尔值
“string”表示值为字符串
“number”表示值为数值
“object”表示值为对象而不是函数或null
“function”表示值为函数
“symbol”表示值为符号。 2、undefined类型
undefined类型只有一个值就是特殊值undefined。当使用var或let声明了变量但是没有初始化时就相当于给变量赋予了undefined值
总结一个变量声明了但是没有初始化或者一个没有声明的变量调用typeof操作符都会返回结果为“undefined” 3、NULL类型
NUll类型同样只有一个值即特殊值null。逻辑上讲null值表示一个空对象指针这也是给typeof传一个null会返回“object”的原因。
在定义将来要保存对象值的变量时建议使用null来初始化不要使用其他值。这样只要检查这个变量是不是null就可以知道这个变量是否在后来被重新赋予了一个对象的引用。 4、Boolean类型
boolean类型是javascript中使用最频繁的类型之一有两个字面值true和false。这两个布尔值不同于数据因此true不等于1false不等于0。
注意
布尔值字面量true和false是区分大小写的因此True和False及其他大小混写形式是有效的标识符但不是布尔值。 Boolean()转型函数可以在任意类型的数据上调用而且始终返回一个布尔值。这个就是强制类型转换与python中bool函数功能相似 5、Number类型
Number类型在javascript中表示整数和浮点数某些语言中也叫双精度值。不同的数值类型相应地有不同的数值字面量格式。这种方法中 6、NaN
有一个特殊的设置叫NaN意思是“不是数值”not a number用来表示本来要返回数值的操作失败了而不是抛出错误。NaN有几个独特的属性。首先任何设计NaN的操作系统返回NaN在连续多步计算时这可能是个问题。其次NaN不等于包括NaN在内的任何值。
javascript中提供了isNaN函数。该函数接受一个参数可以是任意数据类型然后判断这个参数是否“不是数值”。 7、数值转换
有3个函数可以将非数值转换为数值Number(),parseInt()和parseFloat()。Number()是转型函数可用于任何数据类型。后两个函数主要用于将字符串转换为数值。 Number()函数基于如下规则执行转换
布尔值true转换为1false转换为0
数值直接返回
null返回0
字符串应用以下规则
如果字符串包含数值字符包括数值字符前面带加、减号的情况则转换为一个十进制数值。
如果字符串包含有效的浮点值格式“1.1”则会转换为相应的浮点值。
如果字符串中包含有效的十六进制格式如:oxf则会转换为与该十进制值对应的十进制整数值。
如果字符串是空字符串不包含字符则返回0
如果字符串包含上述请款之外的其他字符则返回Nan。
对象调用valueof()方法并安装上述规则转换返回的值。如果转换结果是NaN则调用toString方法再按照转换字符串的规则转换。 因为使用Number()函数转换字符串相对复杂且有反常规通常在需要得到整数时可以优先使用parseInt()函数。该函数更专注于字符串是否包含数值模式。 parseInt()函数也接收第二个参数用于指定底数进制数。如传入的第二参数为16表示对要解析的值是十六进制。这是传入需要解析的数据可以省略0x。这个函数的输出还是会以十进制的形式的输出转换后的数据。
注意事项
当不传底数参数时parseInt()函数自己决定如何解析所以为避免解析出错建议始终传给它第二参数。大多数情况下解析的数据都是十进制数此时第二个参数就要传入10。 parseFloat函数的工作方式跟pareInt()函数类似都是从位置0开始检测每个字符。同样它也是解析到字符串末尾或者解析到一个无效的浮点数值字符为止。这意味着第一次出现的小数点是有效的但第二次出现的小数点就无效了此时字符串的剩余字符都会被忽略。如“2.3.6” 会被转换为2.3。
parseFloat函数始终忽略字符串开头的零且该函数只解析十进制值因此不能指定底数。 8、String类型
string字符串)数据类型表示零或多个16位Unicode字符序列。字符串可以使用双引号“、单引号‘或反引号·标识。这三种方式定义字符串的标果是一样的。
字符串的长度可以通过其length属性获取。
如
len nameyuanyexiaolu;
console.log(name.length); //12 标识当前字符串含有12个字符 字符串特点
javascript中的字符串是不可变的意思是一旦创建它们的值就不能变了。要修改某个变量中的字符串值必须要先销毁原始的字符串然后将包含新值的另一个字符串保存到该变量。 转换为字符串
有两种方式把一个值转换为字符串。首先是使用几乎所有值都有的toString()方法。这个方法唯一的用途就是返回当前值的字符串等价物。toString()方法可见于数值、布尔值、对象和字符串值。null和undefined值没有toString()方法。toString()函数可以接收一个底数参数即以什么底数来输出数值的字符串表示。默认情况下toSting()返回数值的十进制字符串表示。而通过传入参数可以得到数值的二进制、八进制、十六进制或者其他任何有效基数的字符串表示。
如
len num10;
console.log(num.toString()); //10
console.log(num.toString(2)): //1010 当你不确定一个值是不是null或undefined可以使用string转型函数它始终会返回表示相应类型值的字符串。String()函数遵循如下规则
如果值有toString()方法则调用该方式不传递参数并返回结果。
如果值是null返回null 如果值是Undefined返回“undefined”。 注意
用加号操作符给一个值加上一个空字符串“”也可以将其转换为字符串 字面量模板
javaScript中新增了使用模版字面量定义字符串的能力模版字面量保留换行字符可以跨行定义字符串。
顾名思义模版字面量在定义模版时特别有用。由于模板字面量会保持反引号内部的空格因此在使用时要格外注意。格式正确的模版看起来可能会缩进不当。模版字面量使用反引号定义。 字符串插值
模板字面量最常用的一个特性就是支持字符串插值也就是可以在一个连续定义中插入一个或多个值。技术上讲模板字面量不是字符串而是一种特殊的javaScript句法表达式只不过求值后得到的是字符串。模板字面量在定义时立即求值并转换为字符串实例任何插入的变量也会从他们最接近的作用域中取值。
字符串插值通过${}中使用一个javaScript表达式实现
let value5;
let exponentsecond;
//以前字符插值是这样实现的
let interpolatedStringvalue to the exponent power is (value*value);
//现在可以用模板字面量这样实现
let interpolatedTemplateLiteral${ value } to the ${exponent} power is ${value*value};
console.log(interpolatedString); //5 to the second power is 25
console.log(interpolatedTemplateLiteral) //5 to the second power is 25 所有插入的值都会使用toString()强制转换为字符串而且任何javaScript表达式都可以用于插值。
嵌套的模板字符串无需转义
console.log(hello, ${world}!); //hello, world
将表达式转换为字符串时会调用toString(),在插值表达式中可以调用函数和方法。此外模块也可以插入自己之前的值。 模板字面量标签函数
模板字面量也支持定义标签函数tag function而通过标签函数可以自定义插值行为。标签函数会接收被插值记号分隔后的模版和对每个表达式的结果。
标签函数本身是一个常规函数通过前缀到模板字面量来应用自定义行为。标签函数接受到的参数依次是原始字符串数组和对每个表达式求值的结果。这个函数返回值是对模板字面量求值得到的字符串。
let a6;
let b9;
function simpleTag(strings,...expressions) {
console.log(strings);
for (const expression of expressions) {
console.log(expression);
}
return foobar
}
let taggedResult simpleTag ${a} ${b} ${ab}
console.log(taggedResult);
输出结果
[ , , , ]
6
9
15
foobar 原始字符串
使用模板字面量也可以直接获取原始的模板字面量内容如换行符或unicode字符而不是被转换后的字符表示。因此可以使用默认的String.raw标签函数。
console.log(\u00A9) //©
console.log(String.raw\uA009); \\uA009 9、Symbol类型
Symbol符号是javascript中新增的数据类型。符号是原始值且符号实例是唯一、不变的。符号的用途是确保对象属性使用唯一标识符不会发生属性冲突的危险。符号就是用来创建唯一记号进而用作非字符串形式的对象属性。
符号的基本用法
符号需要使用Symbol函数初始化。因为符号本身是原始类型所以typeof操作符符号返回symbol。
如
let symSymbol();
console.log(typeof sym); //symbol 10.object类型
javascript中的对象其实就是一组数据和功能的集合。对象通过new操作符后跟对象类型的名称来创建。开发着可以通过object类型的实例来创建自己的对象然后再给对象添加属性和方法。
如
let personnet Object(); 五、操作符
可用于操作数据值的操作符叫做操作符。
递增/递减操作符前缀版i和后缀版i
这两者的区别是i是先将i的值加一然后再继续运算i是先将i的值用于运算运算结束后再进行加一。
一元加和减加号和减号-
位操作符非~、与、或|、异或^,左移,右移,无符号右移
布尔操作符逻辑非 、逻辑与、逻辑或||
乘性操作符乘法*、除法/和取模(%)。
指数操作符指数Math.pow 或者 **
关系操作符小于、大于、小于等于和大于等于
相等操作符判断两个变量是是否相等是编程中最重要的操作之一。在javascript中提供了两组操作符。
第一组是等于和不等于他们在比较之前执行转换。和
第二组是全等和不全等他们在比较之前不执行转换。和
条件操作符条件操作符是javascript中用途最为广泛的操作之一。语法如下
variable boolean_expression ? true_value : false_value
赋值操作符简单赋值用等于号表示将右手边的值赋给左手边的变量。可以使用其他操作符构成复合型值操作符
逗号操作符逗号操作符可以用来在一条语句中执行多个操作。 六、语句
JavaScript中大部分语法都体现在语句中语句通常使用一个或多个关键字完成既定的任务。 1、if语句
语法1如下
if 表达式 执行语句1 else 执行语句2
解释
表达式运行结束后会自动转换为布尔值如果布尔值为“真”则运行“执行语句1”如果布尔值为“假”就运行执行语句2。注意执行语句可以是一个代码块这个时候用花括号包含即可。
具体实例如下
let number89
if (number80) console.log(当前number的值大于80\n)
else{
console.log(当前number的值小于80\n)
} 语法2如下
if表达式{执行语句1}
else if (表达式) {执行语句2}
else{执行语句3} 具体实例如下
let number89
if (number90) console.log(当前number的值大于90\n)
else if (number85 number90){
console.log(当前number的值介于85到90之间\n)
}
else {
console.log(当前number的值不在80~90的范围内)
} 2、do-while语句
do-while语句是一种后测试循环语句即循环体中的代码执行后才会对退出条件进行求值。换句话说循环体内的代码至少执行一次。do-while的语法如下
do{
执行语句
}while (表达式) 例子
let i0;
do {
i2;
}while (i10)
console.log(i) //10 3、while语句
while语句是一种先测试循环语句即先检测推出条件再执行循环体内的代码。
语法如下
while(表达式) 执行语句
let i0;
while (i10)
{
i2
}
console.log(i) //10 4、for语句
for语句也是测试语句只不过增加了进入循环之前的初始化代码以及循环执行后要执行表达式。
语法如下
for (初始化变量条件判断表达式) 执行语句
实际举例如下
let count10;
for (let i0;i10;i){
console.log(i);
} 5、for-in 语句
for- in 语句是一种严格的迭代语句用于枚举对象中的非符号建属性。 6、for-of语句
for-of语句是一种严格的迭代语句用于遍历可迭代对象的元素。 7、标签语句
标签语句用于给语句加标签语法如下
labelstatement
实际例子
startfor (let i 0;icount;i)
{
console.log(i);
} 8、break和continue语句
break 和continue语句为执行循环代码提供了更严格的控制手段。break结束整个循环continue结束本次循环。 9、with语句
with语句的用途是将代码作用域设备为特定的对象语法如下
with (表达式) 执行语句 10、switch语句
switch语句与if语句紧密相关的一种流控制语句类似于C语言中switch语句。
语法如下
switch (expression){
case value1:
statement
break;
case value2:
statement
break;
default:
statement;
}
} 七、函数
函数对任何语言来说都是核心组件因为它可以封装语句然后在任何地方、任何时间执行。javascript中使用function关键字声明。
基本语法如下
function functionName参数1参数2,....
{
执行语句
return 语句 //如果函数需要返回计算结果
}
注意事项
不指定返回值的函数实际上会返回特殊值undefined.