标签:条件控制语句 ros 引号 大小写 范围 width 序列 变量赋值 定义变量
js包括:语法、语句、类型、关键字、保留字、操作符和对象。
语法、关键字、保留字
1.js中一切区分大小写,包括变量、函数名、操作符;
2.标识符规则,第一个字符必须是字母、下划线_、或者美元符号,其它的字符则可以或者只能是字母、美元符号、或者数字组成,并推荐采用驼峰式命名,如goodBoy;
3.语句,所有语句以一个分号结尾,虽然不是必需的,但是为了防止在压缩js代码时因为缺少分号导致语句之间连接出错,同时也为了能省去解析器分析插入分号的时间。在条件控制语句中代码块用花括号{},即使只有一条语句也不应省略,虽然这样不会报错,主要是为了编码清晰;
4.保留字和关键字,关键字指的是js中已经定义的有特殊用途的字段,比如,return、var等等,而保留字就是未来可能会成为关键字的字段,比如ES3中的class、super等保留字已经成为ES6中的关键字。
5.变量,ES中的变量属于泛类型,即可以保存任何类型的数据。定义变量:
var hello;//第一种
var hello = "Hi!";//第二种
hello = "Hi";//第三种
function fn() {
var hello = "Hi";//第四种
hello = "Hi";//第五种
}
第一种,变量定义了但是没有初始化,此方法可取;
第二种,定义并初始化,此方法可取;
第三种,是全局变量的定义方式,此方法不可取;
第四种,局部变量,在函数外无法直接获取,并且在函数退出后会自动销毁,此方法可取;
第五种,跟第三种其实是一样的,只要函数fn被调用一次,那么全局变量hello在任何地方都能直接获取,并且只有退出当前页面或者手动赋空时才会销毁,此方法不可取;
第六种,用逗号隔开,一次性定义多个变量并初始化,此方法可取。
数据类型
ES中有5种基本数据类型,Undefined、Null、Boolean、Number和String。
使用typeof操作符检测变量数据类型可以返回下列值:
"undefined"——值未定义,两种情况,第一种,变量未声明,第二种,变量声明但未初始化,如“var a;”。由于即使时未初始化的变量也会自动赋予undefined,因此,为了区分变量是否已经声明,我们在实际编码的时候应该将变量显式的初始化。这样当我们拿到undefined值时就能识别变量尚未声明。
"boolean"——布尔值,有两个值,true和false,流程控制语句比如if会自动将括号内的数据转换成Boolean类型,具体的转换规则如下表:
数据类型 |
true | false |
Boolean | true | false |
String | 非空字符 | ""空字符串 |
Number | 非零数字包括无穷大 | 0和NaN |
Object | 任何非null对象 | null |
Undefined | N/A | undefined |
"string"——字符串,由0或多个16位Unicode字符组成的字符序列,可以用单引号跟双引号表示。\x41 (十六进制)表示"A",\u03a3(Unicode)也是表示一个字符,反斜杠还可用于转义字符,表示非打印字符。将其他类型数据转换成字符串的方法toString():
true.toString(); //‘true‘,布尔类型转为字符串 var a=10; a.toString(); //‘10‘, 整数转字符串 a.toString(2);//‘1010‘,括号里面的值指的是以二进制方式转换,也可以是八进制跟16进制,不传值默认是十进制 //toString()函数不能把null跟undefined类型转字符串,但是可以用String()函数 String(null);//‘null‘ String(undefined);//‘undefined‘ //除了上面的两个显示转换成字符串的方法,还有就是加号可以隐式的将其它类型值转为字符串,比如: null+‘‘ ;//结果是‘null‘ 10+‘‘;//结果是‘10‘
"number"——数值,十进制、八进制、十六进制,八进制第一位为0然后接着数字(0-7),超过范围则前面的0被忽略转成十进制,十六进制时0x开头。当进行算数运算时都会被转成十进制值。浮点数值示例如下:
var float1 = 1.1; var float2 = 1.0;//解析为1 var float3 = .1;//不推荐 var float4 = 1.;//直接解析为1 var float5 = 1.125e7;//实际含义为1.125乘以10的7次方 var float6 = 1.125e-7;//实际含义为1.125乘以10的-7次方 //不要用以下的判断,浮点数会产生舍入误差的问题 if(a+b == 0.3) { }
NaN是一个非数值,在ES中,这个数值表示一个预期返回数值的操作未返回的情况。实际上,整数跟字符串的减法乘法除法会得出NaN,加法除外。NaN跟任何值都不相等包括NaN本身,
NaN == NaN //false //ES中定义了isNaN函数用来检测是否不是数值 isNaN(NaN);//true isNaN(10);//false isNaN(‘10‘);//false ,可以被转换成10 isNaN("blue");//true isNaN(true);//false,可以被转换成1
数值转换函数,Number、parseInt、parseFloat,第一个可用于任何数据类型,后面两个专门将字符串转换成数值
var num1 = Number(true);//1,如果false则转换成0 var num3 = Number(null);//返回0 var num4 = Number(undefined);//返回NaN var num6 = Number(0011);//11,前面0被忽略 var num2 = Number(99);//正常返回99 var num7 = Number(1.1);//1.1,浮点数返回原值 var num8 = Number(0x11);//17, 16进制的转换为十进制 var num5 = Number(" ");//空字符串转成0 var num9 = Number(‘sd‘);//像字符串就会转成NaN 其实在实际开发过程中,用的比较多的是parseInt parseInt(‘123int‘); //123,忽略第一个遇到的字符串后面所有 parseInt(‘ ‘); //NaN,同时任何非数字开头的字符串都为NaN parseInt(0xa); //10 parseInt(0.6); //0,取整 parseInt(070); //56或者70,在ES3中被当做8进制,ES5中是70,所以我们在使用时建议加上parseInt(070,10); parseInt(‘50‘); //50 parseInt(‘123int‘); //123 parseFloat(‘123aa‘);//123 parseFloat(‘0xa‘);//0,注意这里跟上面的两个都不一样 parseFloat(‘1.2‘);//1.2 parseFloat(‘09.5.5‘);//9.5 parseFloat(‘3.2e2‘);//320
"object"——对象或null,null数据类型表示的是一个空对象指针,所以这是一个对象。当我们在声明一个对象变量时最好将之初始化为null,这样后续我们便可以通过变量不为null来判断变量赋值成功。ES中规定undefined== null为true,所以在开发的时候需要注意考虑到这种情况。同时,在使用时,也要区分开其跟DOM等对象的不同。
标签:条件控制语句 ros 引号 大小写 范围 width 序列 变量赋值 定义变量
原文地址:https://www.cnblogs.com/shaohua007/p/10589405.html