在JavaScript中不管是用单引号声明或双引号声明的字符串都可以解释转义字符。
\r
,回车。表示打印头归位。
\n
,换行。纸张移动一行。
Boolean类型
Boolean类型用来做开关、条件的处理。
只有两个值,true 和 false,而且严格区分大小写。
真:true 1 on
假:false 0 off
var bool1 = true;//布尔值
var bool2 = false;
console.log(bool1); // true
console.log(bool2); // false
var str1 = 'true';//字符串
var str2 = 'false';
console.log(str1); // true
console.log(str2); // false
undefined类型
undefined类型只有一个值就是undefined。表示声明了变量但是没有初始化(没有给值)。
var str;
console.log(str); // undefined
null类型
定义变量并且赋值时直接赋值null,就是null类型。null数据类型只有一个值就是null。
var test = null;
console.log(test); // null
console.log(typeof test); // object
null 一般在对象中使用。如:对象初始化中或删除对象。
注意:
document.write('123\r\n456'); // 123 456 这里的换行以空格来表示。
console.log('123\r\n456'); // 123
// 456 这一个在控制台中,实现了换行。
//以上的两行代码都是字符串才行。
document.write('<h1>闫海静真英俊!</h1>'); // h1的效果会在页面中出现。
获得类型
typeof 值/变量
最终得到的结果字符串。返回的是数据类型名
的小写形式。
- boolean,布尔值
var bool1 = true;
console.log(typeof bool1); // boolean
- string,字符串
var str1 = '太虚真人';
console.log(typeof str1); // string
var test = 1;
test = '呵呵';
console.log(typeof test); // string
- number,数值
var num1 = 1;
console.log(typeof num1); // number
- undefined
未声明这个变量或变量未初始化都会返回undefined,这个时候可以认为这个变量不能真正使用。
console.log(typeof xiaoshuageshilipeihua); // undefined
var taiXu;
console.log(typeof taiXu); // undefined
变量在没有声明时将会报错,变量没有声明只能进行一种操作就是 typeof。
console.log(typeof tiaXu);//undefined
console.log(tiaXu);//报错
- object,对象或null。
千万要注意,typeof null 时虽然结果返回的是object但是null依然是基本数据类型。
不要认为null是引用类型(是对象),null就是基本数据类型。
var obj1 = null;
var obj2 = {
};//这个意思是声明了一个空对象。
console.log(typeof obj1); // object
console.log(typeof obj2); // object
console.log(typeof ‘null’); // string 字符串
console.log(typeof null); // object
- 还有其他的返回值后面再说。
类型转换
JavaScript是弱类型语言,弱在哪里。
- 强类型语言在声明变量的时候必须指定对应数据类型。
int test = 1;
test = '哈哈';
- 弱类型语言首先不会在定义时指定变量的类型,变量的类型可以随着值的变化而变化。
var test = 1; // 这时候test是数字类型
test = '呵呵'; // 这时候test变成了字符串类型
console.log(typeof test); // string
var t1 = 1;
var t2 = '1';
console.log(t1 + t2); // 11
因为不限制具体类型就会有一种情况:两种或多种不同类型的变量进行相互操作。这个时候就涉及到了类型转换。
类型转换分为两种类型:
- 强制类型转换,我们自己强制让某个值进行转换。
- 隐式类型转换,这种转换方式会配合着运算符,是在运算的时候自动发生的转换。
强制类型转换
-
Boolean()
小工具:将指定的值转换为布尔值,总是返回true或false。任何非空字符串都转换为true,空字符串转换为false。
var str1 = '';
var str2 = ' '; // 空白串
var str3 = '刚才的铃声真刺激!';
var str4 = '123456789';
// 通过Boolean强制的把 str1、str2、str3、str4转为布尔值。
console.log(Boolean(str1));//false
console.log(Boolean(str2));//true
console.log(Boolean(str3));//true
console.log(Boolean(str4));//true
任何的非零数值转换为true,0和NaN转换为false。
var num1 = 0;
var num2 = 1;
var num3 = -1;
var num4 = NaN;
console.log(Boolean(num1)); // false
console.log(Boolean(num2)); // true
console.log(Boolean(num3)); // true
console.log(Boolean(num4)); // false
var a = b;
console.log(Boolean(a)); // 报错 // b is not defined
NaN(Not a Number),是一个特殊的数值,用来表示本来要返回的值是数值但是没有返回数值的情况。
// undefined表示可以认为这个变量不能真正使用,所以没有办法进行运行。
var unde = undefined;
console.log(unde + 1); // NaN 要得到结果应该是数值,但是没办法,我得不到,所以只能用NaN表示。
// 这个NaN比较恶心
console.log(NaN + 1); // NaN
console.log(NaN - 1); // NaN
// 判断NaN是否等于NaN
console.log(NaN == NaN); // false
undefined,将会转换为false。
console.log(Boolean(undefined)); // false
- 任何对象都会被转换为true,null转换为false。
var obj1 = {
}; // {}表示一个空对象
var obj2 = null;
console.log(Boolean(obj1)); // true
console.log(Boolean(obj2)); // false
console.log(Boolean(null)); // false
Number()
小工具,将非数值转换为数值。