[TOC]
var和let的区别
var的特点
1.var可以重复声明,后面的覆盖前面的值
var a=10;
var a=100;
2.var可以只声明不赋值,此时变量是undefined
var b;
console.log(b); //undefined
3.在全局作用域中,使用var声明的变量会给全局对象window增加一个属性
var c=10;
//in:用来判断一个属性在不在一个对象中
console.log("c" in window); //true
let的特点
1.不可以重复声明
let name="珠峰";
let name="培训"; //报错 "name" has already been declared (name已经被声明了)
2.只声明不赋值,就会报错
3.在全局作用域中,使用let声明的变量不会给全局对象window增加一个属性
const 定义变量(常量的特点)
1.不可以重复声明
2.声明的常量不会给全局对象window增加一个属性
const a=100;
console.log(window.a); //undefined
3.赋值之后不可以修改
const tt=100;
tt=200; //报错 invalid assignment to const `tt' 常量tt已经被分配值了
4.一旦声明必须赋值
const a; //SyntaxError(语法错误): missing = in const declaration(声明)
toString()详解
1.任意数据类型都有一个toSting方法,只有null和undefined没有这个方法
null.toString(); //报错 Cnanot read property 'toString' of null(在null中没有找到这个toString方法)
//数字number
let num=10;
console.log(num,num.toString()); //10 "10"
2..toString(); //2 注意:数字后面紧跟的点表示有效数字小数点,如果再有一个点就是字
符
//使用小括号括起来
console.log((2).toString()); //2
//boolean
let bol=true;
console.log(bol.toString()); //"true"
let bol1=false;
console.log(bol1.toString()); //"false"
//引用数据类型的toString()方法
数组调用toString方法转字符串直接将[]变成""
var arr1=[];
console.log(arr1.toString()); //""
var arr2=[1,2,3];
console.log(arr2.toString()); //"1,2,3"
//对象转字符串的结果都是 "[object Object]"
var person={
name:"珠峰",
age:9
};
console.log(person.toString()); //"[object Object]"
//正则转字符串 直接使用引号抱起来
var reg=/\d+/;
console.log(reg.toString()); "/\d+/"
//时间转字符串,直接用引号括起来
var date=new Date();
console.log(date.toString()); //"Wed Apr 18 2018 10:53:25 GMT+0800"
//函数转字符串,直接用引号抱起来
function sum(){
return 1+1;
}
console.log(sum.toString()); //"function sum(){return 1+1;}"
网友评论