JavaScript的变量声明分为显式声明跟隐式声明。
即带var关键字声明,例如
var example = example;
要注意JavaScript里面声明的关键字只有function和var两个,不要和C之类的int、float等弄混了。
我们也可以暂时不初始化,和下面这句是等价的:
var example; example = "example";如果我们没初始化的话,变量将是undefined。但不建议不初始化,而是根据变量的用途来初始化,例如若变量为字符串,则赋值为空字符串,如果是数字,则赋值为0等等。
var variable1 = 1, variable2 = 2, variable3 = 3;注意若是批量声明的话除了最后一个声明后面是分号其他的都是逗号,否则后面的变量会变成隐式声明变量。
function func() {} var func = function() {}
example = "example";这样也是合法的,那么两者有什么区别呢?
前面说过JavaScript没有C的int、float等关键字,那么,JavaScript变量有没有类型呢?
废话,前面都说了,若变量为字符串,则初始化为空字符串等等,那就肯定有类型了。JavaScript共有6种基本变量
typeof(1234); // number
主要在以下情况出现
var str = "1234"; // str = "1234" var str = new String(); // str = "" var str = new String("1234"); // str = "1234"如果String构造函数不传参数,则默认为空字符串。
var str = new String("1234"); console.log(str.length); // 4 "1234".length; // 4所有对象(除undefined和null外)都有toString方法,传入String构造函数的任意类型数据都会被转换为字符串,包括undefined和null
var str = new String(1234); // str = "1234" var str = new String(undefined); // str = "undefined" var str = new String(null); // str = "null"
var num = 1234; // num = 1234 var num = new Number(undefined); // num = 1234和字符串类似,如果我们传入构造函数的是其他类型的呢?
var num = parseInt("1234"); // num = 1234如果被转化的对象里含有非数字字符,那么就会返回NaN(not a number),NaN表示应该返回number类型结果却没有
var num = parseInt("ab1234"); // num = NaN
function func(param1, param2) { return param1 + param2; } var func = function(param1, param2) { return param1 + param2; } var func = new Function("param1", "param2", "return param1 + param2");这三者在绝大多数情况下是等价的。之所以说绝大部分,是因为在函数声明提升中会有所不同,这里也不涉及。
var obj = new Object(); var obj = {};object类型变量可以使用object方法,object类型有prototype属性(JavaScript继承的基础)
JavaScript快速入门(二)——JavaScript变量
原文:http://www.cnblogs.com/smght/p/4368621.html