JavaScript之变量和数据类型
变量
变量在JavaScript中就是用一个变量名表示,变量名是大小写英文、数字、$和_的组合,且只能以字母、下划线、$开头。变量名也不能是JavaScript的关键字,如if、while等。声明一个变量用var关键字,比如:
var a; //声明变量a var b = 10; // 声明变量并赋值 var $a = "string"; // 以$符开头声明变量 var _a = true; // 以_开头声明变量 var _b = null; var $b = undefined;
注意:变量是严格区分大小写的。
变量的书写规范:
1、驼峰式写法 -- 第一个单词小写,其余单词首字母大写。如:myNameIsLee
2、下划线式写法 -- 单词统一小写且单词与单词之间用下划线隔开。如:my_name_is_lee
注意:在开发过程中,无论使用哪一种书写规范,都应该保持整个项目始终如一。
数据类型
在JavaScript中,共有6种数据类型,分别是:数值型(Number)、布尔型(Boolean)、字符串型(String)、undefined、null、对象型(Object)。前四种为基本数据类型,null是特殊的类型,Object是复合数据类型。
Number
JavaScript不区分整数和浮点数,统一用Number表示,以下都是合法的Number类型:
1234; // 整数1234 1.456; // 浮点数1.456 1.235e3; // 科学计数法表示1.235x1000,等同于123.5 -199; // 负数 NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示 Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity
要将一个值转成数字,可调用函数Number()、parseInt()和parseFloat(),如下所示:
1、Boolean值true和false被转成1和0
2、null值被转成0
3、undefined被转成NaN
4、字符串
a)空字符串转成0
b)字符串只包含有效的数字(整型和浮点型),转换成对应的值
c)其余的字符串转成NaN
Number("Hello word"); // NaN
Number(""); // 0
Number(true); // 1
Number("000111"); // 111
Number("1.011"); // 1.011
parseInt("103Abc"); // 103
parseFloat("1.09abc"); // 1.09
Boolean
Boolean类型是ECMAScript中使用最多的一种类型,该只有两个值:true和false。这两个值与数字值不是一回事,因此true不一定等于1,而false不一定等于0;同时true和false是区分大小写的,True和False都不是Boolean的值,知识标识符。以下为Boolean赋值:
1 var found = true; 2 var lost = false;
要将一个值转换成布尔型,可调用转型函数Boolean(),如下所示:
1、任何非空字符串转换成true
2、任何非零数值(包含无穷大)转换成true
3、null和undefined转成false
1 var msg = "Hello World"; 2 var msgAsBoolean = Boolean(msg);
String
字符串由单引号(')和双引号(")表示。以下字符串都是有效的:
1 var firstname = "Niholas"; 2 var lastname = 'Zakas';
要将一个值转成字符串型,可以使用String()函数和Number、Boolean、Object、String的toString()方法;注意:null和undefined没有toString()方法。
var num = 10; var bool = flase; var val = null; var undef = undefined; String(num); // "10" String(bool); // "false" String(val); // "null" String(undef); // "undefined" num.toString(); //"10" bool.toString(); //"false"
undefined和null
undefined和null类型都是只有一个值,即undefined和null。当使用var声明一个变量且位赋值时,该变量的值就是undefined;如:
1 var msg; 2 alert(msg == undefined); // 返回true
null值表示一个空对象的指针,因此使用typeof操作符检测null值时返回"object"的原因。如:
var car = null; alert(typeof car); //返回"object"
注意:alert(null == undefined)会返回true。
Object
在JavaScript中,一切皆对象,所有对象都包含属性和方法,可通过点(.)方法给对象添加属性和方法;创建对象方法如下:
1 var obj1 = new Object(); 2 var obj2 = { 3 name: "Jim", 4 age: 19, 5 say: function(){ 6 console.log("Hello World"); 7 } 8 }; 9 obj1.name = "Kimmy"; 10 obj1.sayHi = function(){ 11 console,log("Hi"); 12 };
类型检测
1、typeof -- 返回6种数据类型。tyepeof null将会返回object
typeof 100; // number typeof "string"; // string typeof true; // boolean typeof [1,2]; // object typeof null; // object typeof NaN; // number
2、instanceof -- 基于原型链操作
方法:obj instanceof Object -- 左操作数为对象,不是就返回false;右操作数必须是函数对象或函数构造器,不是就返回typeError异常。
原理:判断左操作数的对象的原型链上是否有右边这个构造函数的prototype属性。
1 var arr = [1,2,3]; 2 console.log(arr instanceof Array); // 返回true
3、Object.prototype.toString.apply或Object.prototype.toString.call
Object.prototype.toString.apply([1,2]); // 返回[object Array] Object.prototype.toString.apply(function(){}); // 返回[object Functon] Object.prototype.toString.apply(null); // 返回[object Null] Object.prototype.toString.apply(undefined); // 返回[object Undefined] Object.prototype.toString.apply({}); // 返回[object Object] Object.prototype.toString.apply("123"); // 返回[object String] Object.prototype.toString.apply(123); // 返回[object Numbe] Object.prototype.toString.apply(true); // 返回[object Boolean]
注意:在IE6/7/8中,Object.prototype.toString.apply(null)返回“[object Object]”。
4、constructor
function obj(){} obj.prototype.constructor === obj; // 返回true
本文仅供自己在平时工作学习时作笔记使用!如有错误请多多指出!!!

浙公网安备 33010602011771号