02-js变量及数据类型
变量
javascipt是弱类型语言,定义变量时无需指定具体类型。
控制台打印
console.log("i=" + 1);
全局变量:
var i = 1;
var name = "张三";
//es6提供了两个新指令:let const,用来代替var
{
var j = 2;//全局变量
console.log(j);
}
console.log(j);
{
let z = 3;//局部变量
console.log(z);
}
console.log(z);//报错,显示未定义
{
const y = 4;//常量
//y = 5;//显示是常量,不让改变
console.log(y);
}
console.log(y);//报错显示,未定义
数据类型
值类型(基本类型):
number:数字
string:字符串
boolean:布尔类型
null:空值
undefined:未定义
symbol:独一无二的值(es6新引入的原始数据类型)
引用数据类型:
Object对象
Array数组
Function函数
let num = 123;
console.log(typeof num);//number
let str = "hello js";
console.log(typeof str);//string
let bool = true;
console.log(typeof bool);//boolean
let a;
console.log(typeof a);//undefined
//null是undefined的父类型
console.log(a == undefined);//true
console.log(a == null);//true
console.log(undefined == null);//true
//弱相等和强项等
let v1 = "123";
let v2 = 123;
console.log(v1 == v2);//true,弱相等,只比较数据内容,不比较数据类型
console.log(v1 === v2);//false,强相等,比较数据内容和数据类型
//判断是否不是数字
let v3 = 123;
let result = isNaN(v3);//is not a number
console.log(result);//false
js是弱类型语言,在定义变量时无需确定数据类型,在给变量赋值后,会自动确定数据类型。
数据类型的转换
console.log(Number("123"));
console.log(Number("abc")); // NaN
console.log(Number("+123"));
console.log(Number("-123"));
console.log(Number("12.3"));
console.log(Number("666abc")); // NaN
console.log("====================================");
console.log(Boolean(0)); // false
console.log(Boolean(1)); // true
console.log(Boolean(10)); // true
console.log(Boolean(-10)); // true
console.log(Boolean("0")); // true
console.log(Boolean("1")); // true
console.log("====================================");
sout(parseInt("666"));
sout(parseInt("666.8")); // 转为整型
sout(parseInt("+666"));
sout(parseInt("-666"));
sout(parseInt("666abc"));
sout(parseInt("666元")); // 获取数字部分
sout(parseInt("666元5角"));
console.log("====================================");
sout(parseFloat("666"));
sout(parseFloat("666.8"));
sout(parseFloat("666.8元"));
sout(parseFloat("-666.8元"));
sout(parseFloat("-666.8888888"));
sout(parseFloat("666.888.888.8"));
console.log("====================================");
// 补充:四舍五入保留小数
let num1 = 123.65678;
sout(num1.toFixed());
sout(num1.toFixed(2));
sout(num1.toFixed(3));
sout(num1.toFixed(10));
sout(typeof num1.toFixed(10)); // string
function sout(a) {
console.log(a);
}