码迷,mamicode.com
首页 > 其他好文 > 详细

数据类型

时间:2017-04-23 18:06:24      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:不可变   cti   大写   obj   something   情况   作用   blog   firefox   

文章里介绍的是javascript的基本概念即语法和控制流,而且对它和基于C的语言的语法不同之处,但是由于我并没有C的基础,对我来说,都是新的。
1.0 语法
(1)ECMAScript中的一切都区分大小写。
(2)标识符
第一个字符必须是字母、下划线、或者是美元符号;
其他字母可以是字母、下划线、美元符号或数字;
推荐写法:采用驼峰大小写格式。即第一个字母小写,余下的每个单词的首字母大写。例firstSecond
(3)注释
单行://
块级:

        /*
         *
         *
         */

 


(4)严格模式
第一种方式:在顶部添加代码:“use strict";
第二种方式:

function doSomething(){
"use strict";



//函数体
}

严格模式下执行结果会有很大不同,支持严格模式的浏览器有IE10+、Firefox4+、Safari5.1+、Opera12+和Chorme
(5)语句以分号做结尾
也可以使用C风格语法把多条语句组合到一个代码块中,将代码块用左花括号开头,用右花括号结尾;(在控制语句中使用代码块可以让编码更清晰,降低修改里的错误机率)
2.0关键字和保留字
关键字和保留字不能用作标识符和函数名。
3.0变量
var message;//定义一个名为message的变量
在函数中使用var给变量赋值,在调用函数的时候,该变量被创建且被赋值。而在些之后,这个变量又会被立即销毁,导致下一行代码的错误。
措施(并不推荐):省去var操作符,创建全局变量。例如

function test(){
message="hi";//全局变量
}
test();
alert (message);//"hi"

这个例子中,只要调用一次test()函数,这个变量就有了定义,在 函数外部也可以被调用。
不被推荐的原因是因为在局部作用域中定义的全局变量很难维护,对var操作符的忽略,在严格模式下未经声明的变量赋值会导致ReferenceError的错误。
最佳方案:
使用一条语句定义多个变量:

var message="hi",
found=false;
age=29;

使用不同类型初始化变量的操作放在一条语句中完成,换行和缩进虽然不是必须的,规范的语句能提高可读性。
4.0数据类型
ECMAScript中有五种简单数据类型:Undefined Null Boolean Number和String.另外还有一种复杂数据类型:Object。
(1)typeof 操作符

var message="someting";
alert (typeof message); //string
alert(typeof 78);//number

PS :函数在ECMAScript中是对象,而不是某种数据类型。
(2)Undefined类型
变量被声明却没有被初始化的时候,这个变量的值就是Undefined

var message;
alert (typeof message);//Undefined
alert(typeof age);//Undefined

对未初始化和未声明的变量在typeof操作符下都返回到了Undefined 值,在技术角度上却有着巨大的差别。
(3)Null
和Undefined一样,Null数据类型也只有一个值null。这个值表示一个空对象指针。
它们之间的不同在于,无论在什么情况下都没有将一个变量的值显性的设置为undefined,而对于null却不能同样采用这种规则。只要打算保存对象的变量却还没有真正的保存,就应该明确的让该变量保存null值
(4)Boolean
这个数据类型我只了解到两个值,即true false .
关于它的转换,等读懂了再更新
(5)Number
注意NaN(非数值)和isNaN(函数)

alert(NaN==NaN);//false
alert (isNaN(NaN));//false
alert (isNaN(10));//false
alert (isNaN("10"));//true
alert (isNaN(NaN));//false

数值转换:

var num1=Number("hello world");//NaN(不包含有意义的数字值1)
var num2=Number("");//0 (空字符串)
var num3=Number("000011");//11(0被忽略)
var num4=Number("true");//1(true)
parseInt():
var num1=parseInt("AF",16);//175
var num2=parseInt("AF");//NaN

在不同基数下的parseInt:

var num1=parseInt("10",2);//2
var num2=parseInt("10",8);//8
var num3=parseInt("10",10);//10
var num4=parseInt("10",16);//16
parseFloat()
var num1=parseFloat("1234blue");//1234
var num2=parseFloat("0xA");//0
var num3=parseFloat("22.5");//22.5
var num4=parseFloat("22.34.5");//22.34
var num5=parseFloat("0908.5");//908.5
var num6=parseFloat("3.125e7");//31250000

(6)string
表示由零或多个16位Unicode字符组成的字符序列,即字符串。可以用双引号或单引号来表示。
A要注意的字符字面量的使用;
B字符串不可变,一旦创建,值不会变。
var lang="Java";
lang=lang+"Script";
C 转换为字符串
a  :

var age=11;//字符串"11"
var ageAsString=age.toString();
var found=true;
var foundAsString=found.toString();//字符串"true"

b: 

 var num=10;
alert(num.toString());//"10"
alert(num.toString(2));//"1010"
alert(num.toString(8));//"12"
alert(num.toString(10));//"10"
alert(num.toString(16));//"a"

c:

var value1=10;
var value2=true;
var value3=null;
var value4;
alert(String(value1));//"10"
alert(String(value2));//"true"
alert(String(value3));//"null"
alert(String(value4));//"undefined"

(7)Object
对这个类型并没有看懂它的意义~~待学习完毕再更新



   继续努力!

数据类型

标签:不可变   cti   大写   obj   something   情况   作用   blog   firefox   

原文地址:http://www.cnblogs.com/ob99012/p/6752944.html

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