JavaScript之变量和数据类型

变量

  变量在JavaScript中就是用一个变量名表示,变量名是大小写英文、数字、$_的组合,且只能以字母、下划线、$开头。变量名也不能是JavaScript的关键字,如ifwhile等。声明一个变量用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

 

 

 

 

本文仅供自己在平时工作学习时作笔记使用!如有错误请多多指出!!!

posted @ 2017-09-21 08:34  _指尖上的淚ゝ  阅读(229)  评论(0)    收藏  举报