您的位置:首页 > Web前端 > JavaScript

javaScript数据类型、变量命名规范

2016-10-12 18:51 691 查看
1、一元运算符

在说数据类型之前,我要说一下一元运算符,typeof<它能验证数据类型>,是一种操作符,可以对一个变量进行辨别是什么类型,根据它返回的结果,始终是一个值(字符串),对不同的操作数,它返回不同的结果,(弹出的字符串就是验证的数据类型),我们常用的是用来弹出数据类型,可能返回以下的字符串,它们分别代表了不同的类型.

<script type="text/javascript">
var a=888;              document.write('(1)'+typeof a+"<br />"); //返回number    数字类型
var b=NaN;              document.write('(2)'+typeof b+"<br />"); //返回number    数字类型
var c=Number.MIN_VALUE; document.write('(3)'+typeof c+"<br />"); //返回number    数字类型
var d=Infinity;         document.write('(4)'+typeof d+"<br />"); //返回number    数字类型
var e="123";		document.write('(5)'+typeof e+"<br />"); //返回string    字符串类型
var f=true;             document.write('(6)'+typeof f+"<br />"); //返回boolean   布尔类型
var g=window;		document.write('(7)'+typeof g+"<br />"); //返回object    对象类型
var h=document;		document.write('(8)'+typeof h+"<br />"); //返回object    对象类型
var i=null;		document.write('(9)'+typeof i+"<br />"); //返回object    对象类型
var k=Date;		document.write('(10)'+typeof k+"<br />");//返回function  函数类型
var j=eval;		document.write('(11)'+typeof j+"<br />");//返回function  函数类型
var    sss;		document.write('(12)'+typeof l+"<br />");//返回undefined 未定义类型
var m=undefined;	document.write('(13)'+typeof m+"<br />");//返回undefined 未定义类型
</script>
2、相信,看到这里,大家都对typeof,一元运算符,有一定的了解了.页面输出的字符串分别代表了不同类型的数据.

其中,数据类型有一个特殊的值———Infinity 属性 用于存放表示正无穷大的数值. 无法使用 for/in 循环来枚举 Infinity
属性,也不能用 delete 运算符来删除它.Infinity 不是常量,可以把它设置为其他值.

在下列代码中,将展示当一个数超出了 infinity 的限制发生的情况:

<script type="text/javascript">
<span>	</span>var t1=1.7976931348623157E+10308
<span>	</span>document.write(t1)
<span>	</span>document.write("<br />")
<span>	</span>var t2=-1.7976931348623157E+10308
<span>	</span>document.write(t2)
</script>

以上代码输出的值是 lnfinity 、-Infinity    这说明:一个数一旦超出了 infinity 的限制 将返回 lnfinity 、-Infinity  .  如果超出正数范围,输出Infinity(正无穷大),超出负数范围,输出-Infinity(负无穷大)

而且 +-Infinity不能参与数值计算!

2.1、对于数字类型的操作数而言    typeof 返回的值是number  .比如说:typeof(1), 返回的值就是number.  当然数字类型也有例外, 其中一些非常规的数字类型 其返回的类型是

数字类型  

Number如NaN、NaN在js中的意思是表示NaN 属性是代表非数字值的特殊值.同时该属性用于指示某个值不是数字.可以把 Number 对象设置为该值,来指示其不是数

字类型.同时我们需要注意伴随着NaN还有全局函数  isNaN()  全局函数isNaN用来判断一个值是否是NaN 值(是否为数字).  虽然NaN比较特殊但是它本身是一个数字类型.

常见的Number数据类型转化

Number()可用于任何类型,parseInt()和parseFloat专门用于把字符串转换成数值

虽然  这三种函数可以转换接收各种进制的数字 Number()、parseInt()、parseFloat()  但对于含数字的字符串并不适用

Number()、parseInt()、parseFloat()中数字为1.2. 会报错,但字符串为'1.2.'则不会报错

*Number.NaN是一个特殊值,说明某些算术运算(如求负数的平方根)的结果不是数字.方法parseInt() <取整>和parseFloat()<保留浮点数>
在不能解析指定的字符串时就

返回这个值.对于一些常规情况下返回有效数字的函数,通常我们也可以采用这种方法,用 Number.NaN 来说明它的错误情况JavaScript 以 NaN 的形式输出 Number.NaN.请注

意,NaN 与其他数值进行比较的结果总是不相等的,包括它自身在内,因此,不能与 Number.NaN 比较来检测一个值是不是数字,而只能调用
isNaN() 来比较.

NaN:Not a Number.这个数值用于本来要返回一个数值,但是却未能放回一个数值的情况,以防止报错.例如:1/0 返回的就是NaN,NaN的特点:

1、任何涉及NaN的操作都会返回NaN,  (NaN报错!)

2、NaN对任何值都不相等,包括自己NaN本身.针对NaN特性,JS内置了isNaN()函数,来确定数值是不是NaN类型.

3、Number 浮点数值的最高精度是17位小数

4、isNaN()来判断这个数字是不是NaN,包含着隐式类型转换Number()

NaN使用方法如下:

<script type="text/javascript">

var Month=30;

if (Month < 1 || Month > 12)
{
Month = Number.NaN;
}

document.write(Month);

</script>


Number.MAX_VALUE      可表示的最大数字

Number.MIN_VALUE       可表示的最小数字(与零最接近)

Number.NaN          特殊的非数字值

Number.POSITIVE_INFINITY     表示正无穷大的特殊值

Number.NEGATIVE_INFINITY      表示负无穷大的特殊值

*以上五种包括NaN、Infinity这些特殊类型,在用typeof进行运算,其结果都将是number. <t他们都是特殊的Number数据类型>

取整函数parseInt():在转换字符串时,会忽略字符串前面的空格,直到找到第一个非空格字符。如果第一个字符不是数字字符或者负号,parseInt()就会返回NaN。如果是,则

继续解析,直到解析完成或者遇到非数字字符。

parseInt()是专门用来处理字符串转换数字而存在的,所以parseInt(其他类型包括'')//NaN

2.2、对于字符串类型 typeof 返回的值是 string .比如typeof('789')返回的值是string. <一般使用'  '号包含的都是字符串数据类型!包括空' '>字符串,用一对单引号(' ')或双引号

(“ ”)及引号内的字符构成,引号中间的部分可以任意多个,也可以是没有字符的空字符串.字符串中如果字符包含了双引号,则其外部应该由单引号标示,反之相同.String对象是动态

对象,需要创建对象实例后才能引用它的属性和方法.在创建一个String对象变量时,可以使用new运算符来创建,也可以直接将字符串赋给变量.例如:

oBox="Hello"与oBox=new String("hello")是等价的.              
ea90
                                                                                                                                                     
                                                     

var a=6+'5';
alert(a);
对于这种加号在其中起到拼接的作用  +加号 是运算符  但是它比较特殊 , 当发现数据类型不对等时, 它就作为拼接的作用存在 . 上面这段代码最后弹出的值是65而非11

字符字面量,也叫转义序列

\n 换行

\t 制表

\b 空格

\r 回车

\f 进纸

\\ 斜杠

\' 单引号

\" 双引号

xnn 以十六进制nn表示一个字符(n为0-f),如\x41表示'A'

\unnnn 以十六进制nnnn表示一个Unicode字符(n为0-f),如\u03a3表示希腊字符ε

字符串可以是引号中的任意文本。您可以使用单引号或双引号:

2.3、 Boolean 布尔类型  Boolean布尔只有两个值  true <真>和false <假>  但js中所有的变量都可以使用Boolean()函数转换成为 Boolean 类型的值,即真 true 和假 false 

1>、true (真) 对 代表值为 1 (非零即真)     真:true、非零数字、非空字符串、非空对象

2>、false (假) 错 代表值为0   其中false(假)     常用的几种值 false、数字零0 、"  "(  空字符串  、引号中间虽然为空 但是还是代表着一个值)、undefined(未定义)
、null(空)  这

五种值都是假false

注意的是:true 和 false 都是Boolean 里面特殊的关键字 不需要等号 ;

Boolean出现的场景:

1、条件语句导致系统执行的隐式类型转换

2、字面量或变量定义

Boolean常用数据类型转换

1.       Number(true): 1 || Number(false) : 0
2.       String(true):'true' || String(false):'false'
//使用Boolean()变量判别真假相对应的值
Boolean(undefined):false
Boolean(null):false
Boolean(非空对象包括空数组[]和空对象{}):true
Boolean(非0): true || Boolean(0和NaN):false
Boolean(非空包括空格字符串):true || Boolean(''):false
这里我们需要注意的是:<span style="color:#ff0000;">true</span>不一定等于1,<span style="color:#ff0000;">false</span>也不一定等于0


2.4、undefined 未定义类型     

如果运算数/变量是没有定义的, 比如说不存在, 的变量 函数等,  或者 undefined  将返回undefined (未定义) 如上面我们用 typeof 验证数据类型 typeof(sss)  typeof (undefined)  都将返回 nudefined   undefined 只有一种数据类型 即它本身 使用var 声明变量 但是未其对初始化的  那么这个变量就是最好的undefined 类型的例子  如下

var i;
alert(i==undefined);

这将返回true 真!

对于从未定义的变量 需要使用时去使用一元运算符号去检测这个变量的数据类型,但即使是这样在严格模式下也会发生错误   

常见的undefined数据类型转换

布尔类型Boolean(undefined):false
数字类型Number(undefined):NaN
字符串类型String(undefined):'undefined'
undefined 通常在以下五种时刻会出现

1、已声明未赋值的变量

2、获取对象不存在的属性

3、无返回值的函数的执行结果

3、函数的参数没有传入

3、void(expression)

2.5、null (空类型)  null也只有一值 null     、null 表示一个空对象 的指针   

如果我们通过声明的变量在另一个地方用于去保存对象,最好先先给这个变量初始化 使得这个变量的值为空即是null .

其实undefined是等于null的    undefined == null   因为undefined 的值是null赋予的

常见的unll数据转换 代码如下:

1、Boolean(null):false
2、Number(null):0
3、String(null):'null'


null (空类型)在以下几种情况会出现

对象不存在时!

null特别需要注意的是这两点

*!1 null是空对象指针,而[]是空数组,{}是空对象,三者不相同

*!2 null不能添加自定义属性

3、五种基本数据类型,<总结>

在javascript中申明我们声明变量, 使用的关键字都是var, 这点与其它的编程语言不尽相同, 但是javascript亦含有五种基本的数据类型( 简单常用的五种)它们分别是:

3.1、Undefined未定义类型,  2、Null空类型,
3、 Boolean布尔类型, 4、Number数字类型,和  5、 String字符串类型,

Strong 常用的字符串类型代表:" " ''

Boobean 常用的布尔类型代表:true/false

undefiend常用的未定义类型代表:undefiend/ var a; 

Object 常用的对象类型代表:{X:1,Y:2}

function 常用的函数类型代表:function(){};

声明变量类型
当您声明新变量时,可以使用关键词 "new" 来声明其类型:
var carname=new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person= new Object;
JavaScript 变量均为对象,当您声明一个变量时,就创建了一个新的对象.


4、除去五种基本类型的数据外,其余的都是复合型数据类型如:
函数类型:function          对象类型:Object

数组类型:Array              日期类型:Date

数学式:   Math               正则表达式:RegExp

复合数据类型 数组对象Array
//var a = new Array();                    //未添加值的数组
//var a = new Array(10,20,30,"string",40);    //五个值  这是声明数组对象的办法之一
//var a = [10,20,30,"string",40];            //五个值   这也是声明数组对象的办法
//var a = new Array(3);                   //限定数组的长度 并且创建数组

var arr= new Array("张三","李四","王五","赵六");
document.write("Name:<br>");
for( I in arr)                               //循环遍历输出所有的数组
{
document.write(arr[i]);                 //页面输出Name的值
}


数学对象
//和Global一样不能使用new运算符创建,Math对象在程序运行时
//有JavaScript环境创建并初始化
//调用方法:Math.[ {属性名|方法名} ];
//常用方法和属性:

//名称        类别             作用描述
//PI          属性             返回圆周率
//SQRT2       属性             返回2的平方根值
//abs()       方法             返回数字的绝对值
//cos()
//sin()
//max()       方法             返回给定组数中的最大值
//min()
//sqrt()      方法             返回给定数的平方根
//Tan()       正切
//round()     方法             返回与给定数最接近的整数
//log()       方法             自然对数
//pow()       方法             返回给定数的指定次幂

//Date对象的常用方法
//getDate():              返回对象中本地时间表示的日期
//getYear():              返回对象中本地时间表示的年值
//getMonth():             返回对象中本地时间表示的月份值
//注意:所取得的月值等于0~11间的数,且总比本地时间月数小1  特殊的从零开始
//getDay():               返回星期。注意:0~6表示星期天~星期六  0代表星期天
//getHour():              返回小时
//getSeconds():           返回秒
//getMinutes()             返回分钟
//setDate(dateVal):       设置日期
//setYeat(yearVal):       设置年份
//setMonth(MonthVal):     设置月份
//                   日期对象
//date = new Date();                               获取当前事件
//date = new Date(val);                            创建国际标准日期
//date = new Date(y,m,d[,h[,min[,sec[,ms]]]]);     创建指定年月日时分秒的日期,时分秒为可选项

var cur       = new Date();
var years     = cur.getYear();
var months    = cur.getMonth();
var days      = cur.getDate();
var hours     = cur.getHours();
var minutes   = cur.getMinutes();
var seconds   = cur.getSeconds();
alert("北京事件:"+years +"年"+(months+1)+"月"+days+"日"+hours+"时"+minutes+"分"+seconds+"秒");


变量的命名规范(五项)

2.1、 变量命名可以是字母a-z/A-Z(大小写字母开头) 或_(下划线) 与$(美元符号)起始. 变量名不能包含空格或加号,减号或符号
//如oLi2   _aBtn   $oBox   (通常都不使用_ $下划线或者$美元符)
2.2、变量命名的字符长度不允许超过255个字符且变量命名中间不允许有空格.
    
//使用正确的命名长度:如循环中用一个字符,如i ;或j;
 条件和循环变量用一个单词,
方法名1-2个单词,类名2-3个单词,全局变量3-4个单词.变量名要使用
 
      有意义的名称,通过变量名能大概反映出其具体的用途.
2.3、变量命名首个字符不允许为数字.                                                       
                        
 // 如:8oTxt  (这是错误的命名!需要注意)            但是能在字母追加数字如:  oLi2  (这是正确的)
2.4、 变量不能使用Javascript脚本语言中预留的关键字,及其保留字. javascript中定义了40多个关键字                                        
 //如javascript中预留的:true,false,while,case,break保留字等
2.5、 JavaScript中大小写敏感so(大写字母的变量与小写字母的变量是两个不同的变量) 例如Name与name代表两个不责骂的变量.可以在程序分别对其进行声明,赋值和引用.
//如 oB 与ob  是两个不同的变量


JavScript 中三大经典变量命名法   命名规范:能看懂并且符合规范

在这里我习惯使用使用匈牙利命名法  类型前缀加首字母大写 (在下面我枚举各种类型的前缀)

s:表示字符串.n:表示数字.
b:表示逻辑. a:表示数组.r:表示正则表达式
.f:表示函数 .o:表示对象 .g:表示全局变量.

1、匈牙利命名法:类型前缀+首字母大写    使得更容易看懂作用

通过在变量名前面添加相应小写字母的符号标示作为前缀,标示出变量的作用域,类型等,前缀后面是一个或多个单词组合,单词描述了变量的用途.

匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途.

如下:
var sUserName;
var iCount;


2、骆驼式/驼峰命名法
混合使用大小写字母来构成变量的名称 骆驼式命令法,混合使用大小写字母来构成变量和函数的名字.名称首字母小写 后面名称单词首字母大写 看着非常像骆驼背
如下示例:

var printLoadTemplates;//名称首字母小写,其他每个单词的首字母大写

var print_load_templates;//下划线法,每个单词用一个下划线标记

3、三、帕斯卡(pascal)命名法:书写方式与驼峰命名法相同但是首字母大写

示例如下:

var UserName;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息