js知识的在理解。
js语法:
以分号结尾,也可以不写分号,但会占据系统资源。 js会忽略换行和空格,可利用这一点对代码进行格式化。
字面量与变量
字面量是指一些不可改变的值,比如1,2,3,4,5。字面量可以直接使用,但一般不会这么做。
变量可以保存自变量,而且变量的值可以任意改变,变量方便我们使用,一般使用变量去保存一个字面量,而非直接使用。同时可以通过变量对字面量进行描述。
声明变量:我们可以使用var 关键字 声明一个变量。如var a;同时为变量赋值(声明与赋值同时进行)如var a=1;
标识符:
在js中我们可以自主命名的都可以成为标识符。如变量名,函数名,属性名都属于标识符。命名标识符的规则1:标识符可以含有字母,数字,下划线,$符。
2: 不能以数字开头
3:不能是js中的关键字或保留字。
4:一般使用驼峰命名法:首字母小写,每个单词的开头大写。
数据类型:
数据类型指的就是字符串的类型。js中一共由6种数据类型:1:String字符串类型 2:Number数值 3:Boolean布尔值 4:Null空值 5:Underfined未定义类型 6:Object对象。
其中String,Number,Boolean,Null,Underfined属于基本数据类型,Object属于引用数据类型。
字符串String:必须用双引号或单引号括起来,引号之间不能嵌套,可以用/来进行转义。/“表示转义字符。/n表示换行。/t表示制表符。//表示斜杠。
数值Number:在js中所有的数值都是number类型(包括整数和浮点数)。可以使用一个运算符type of 来检查一个变量的类型。语法:type of 变量。当检查字符出串时会返回String.当检查数值时会返回Number.其中js中可以表现的最大值时Number.MAX-VALUE如果用Number表现的数字超过了最大值,则会返回Infinity 表示正无穷。同理-Infinity表示负无穷。并且使用type of 检查Infinity时,返回的时Number.
Number.MIN-VALUE表示大于0的最小值。NaN表示一个特殊的数字,Not A Number,使用type of 检查时也会返回Number.
布尔值Boolean只有2个true与false,通常用来逻辑判断。使用type of 检查布尔值时,会返回boolean.
空值Null的值只有一个就是null,表示一个数值为空的对象。使用type of 检查null时,会返回Object.
未定义类型Undefined的值只有一个就是undefined.是指当声明一个变量时,未给变量赋值,它的值就是undefined.同时使用type of 检查undefined时返回的也是undefined.
强制类型转换:
表示将一个数据类型强制转换成其他的数据类型。如将其他的数据类型转换成String:
1:调用被转换数据类型的toString()方法。该方法不会影响原变量,它会将被转换的结果返回。但是Null和Undefined没有toString方法。如var a=123 a=a.toString();
2:调用String()函数,并将被转换的数据作为参数传递给函数。对于Null和Undefined会转换为"null"和"undefined".
将其他的数据类型转换为Number可以使用Number函数。将字符串转换为数字1:如果是纯数字的字符串,则直接转换为数字。
2:由非数字的内容,则转换为NaN.
3:如果字符串是一个空串或者是一个全是空格的空串,则转换为0
布尔转数字:1:true转为1 2:false转为0
Null转为0.
还有一种方式专门对付字符串:parseInt()把一个字符串转换为整数。他会从左向右读,将字符串中的整数弄出来,遇见不是整数的内容立即停止。
parseFloat()把字符串转换为浮点数。如果对非String进行操作,会先转换成String在进行操作。
将其他的数据类型转换为Boolean.使用Boolean()函数。数字转布尔除了0和NaN是false,其他的都是true.字符串转布尔,除了空串都是true.null和undefined都是fasle.
运算符:
运算符也叫操作符,通过运算符可以对一个或多个值进行运算,并获得结果。如type of 就是运算符,可以获得一个值的类型。它会将该值的类型以字符串的形式返回。如"number""boonlean""string"
算数运算符:当对非数字类型的Number进行运算时,会将这些值转换为Number然后在进行运算。对字符串则会转换为一个拼串在返回。当使用多个字符串时可以换行使用+拼到一起。同时任何值和字符串想加都会转换为字符串,然后在相加。我们可以利用这一特点将其他的数据类型转换为String,只需要任意的数据类型+""。
在做-*/时都会转换为Number,可以通过-0.*1,/1来将其转换为Number.
%可以取余数。
一元运算符:只需要一个操作数。+时正好-是负号。可以对其他的数据类型使用+将其转换为number.
自增++,原变量会立刻加1,a++的值原变量的值,++a是原变量+1后的值。
逻辑运算符:
1:!非 可以对一个值进行非运算,就是对布尔值取反操作,true变false,false便true.对非布尔值进行运算,则先将其转换为布尔值,在进行运算。可以利用这一特点将其他的值转换为布尔值。可以将任何一个之去2次反!!将其转换为布尔值。原理和Boolean()函数一样。
2:&&与两个值中只要有一个false则返回false,都是true才返回true. 对非布尔值进行运算,会先将其转换为布尔值,在将原值返回。如果2个值都为true则返回后面的。如果两个值由false,则返回靠前面的false。(如果第一个值是true,则返回第二个值。如果第一个值是false,则返回第一个值。
3:||或只要有一个true就返回true ,如果第一个值是true,则返回第一个值。如果第一个值是false,则返回第二个值。
赋值运算符:
=可以将符号右侧的值赋值给符号左侧的变量。
关系运算符:
如果关系成立会返回true,关系不成立则会返回false.对非数值进行比较是,会将其转换成数字在进行比较。如果符号两侧的值都是字符串,则不会转换成数字,则会比较字符串中的Unicode编码。
相等运算符:
==
用来比较两个值是否相等,相等返回false,不相等则会返回false.当使用==进行比较时,值得类型不同,会自动进行转换为相同的类型,在进行比较。Undefined和Null比较,会返回true。NaN不和任何值相等,包括它本身。可以通过isNaN()函数来判断一个数是否是NaN.
不相等运算符
!=
全等===,两个值的类型不同,不会进行数值转换。不全等!==
三元运算符(条件运算符):
语法:条件表达式?语句1:语句2;
逗号运算符,
一般在声明多个变量中使用。
我们的程序是由一条一条的语句构成的,由上向下执行,在js中可以使用{}进行分组。同一个{}的语句我们成为一组语句,他们要么都执行,要么都不执行。一个{}中的语句我们成为代码块,在代码块后不用写;Js中的代码块只具有分组的作用,没有其他的作用。代码块内容的内容,在外面时完全可见的。