码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript03-基本概念一

时间:2019-04-08 23:01:09      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:条件控制语句   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.1var 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等对象的不同。

 

JavaScript03-基本概念一

标签:条件控制语句   ros   引号   大小写   范围   width   序列   变量赋值   定义变量   

原文地址:https://www.cnblogs.com/shaohua007/p/10589405.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!