let与var的区别
- let只在声明的块级作用域内有效,外部无法访问;而var则可以访问。
<script>
{
let a=1
}
console.log(a)//显示结果: Uncaught ReferenceError: a is not defined
</script>
<script>
{
var a=1
}
console.log(a)//显示结果:1
</script>
- let变量不可重复定义,var可以。
<script>
{
var a=1
var a=2
}
console.log(a)//显示结果:2
</script>
<script>
{
let a=1
let a=2
console.log(a)//显示结果:Uncaught SyntaxError: Identifier 'a' has already been declared
}
</script>
const命令
- 与let一样,只在声明的块级作用域内有效
<script>
{
const a=1
}
console.log(a)//Uncaught ReferenceError: a is not defined
</script>
- const声明了变量,就必须立即初始化。
<script>
{
const a
a=1
console.log(a)//Uncaught SyntaxError: Missing initializer in const declaration
}
</script>
- const声明一个只读常量,不可修改。
<script>
{
const a=1
a=2
console.log(a)//Uncaught TypeError: Assignment to constant variable
}
</script>
模板字符串
<script>
var a="dog";
var b=`This is a ${a}`;
console.log(b);//结果:This is a dog
</script>
箭头函数
- 简单使用语法
<script>
var func= (a) => a
//等同于
var func=function(a)
{
return a
}
</script>
- this固定,不再根据调用对象变化。
<script>
//字面量方式创建对象
var student={
name:"小心",
age:"16",
// 箭头函数
introduction= () =>{
console.log(`我的名字叫${this.name},今年${this.age}岁`)//Uncaught SyntaxError: Invalid shorthand property initializer
}
// 非箭头函数
// introduction:function(){
// console.log(`我的名字叫${this.name},今年${this.age}岁`)//结果:我的名字叫小心,今年16岁
// }
}
student.introduction()
</script>
- 箭头函数不能用arguments
<script>
// var fun=function(){
// console.log(arguments)//Arguments(3)
// }
var fun= () =>{
console.log(arguments)//Uncaught ReferenceError: arguments is not defined
}
fun(1,2,3)
</script>
对象的单体模式
<script>
var student={
name:"小心",
age:"16",
introduction(){
console.log(`我的名字叫${this.name},今年${this.age}岁`);
}
}
student.introduction()
</script>
面向对象
- 构造函数的方式创建对象
<script>
function Student(name,age){
this.name=name;
this.age=age;
}
Student.prototype.introduction=function(){
console.log(`我的名字叫${this.name},今年${this.age}岁`);
}
var student=new Student("小心",16);
student.introduction();
</script>
- 构造类的方式创建对象
<script>
class Student{
constructor(name,age){
this.name=name;
this.age=age;
}
introduction(){
console.log(`我的名字叫${this.name},今年${this.age}岁`);
}
}
var student=new Student("小心",16);
student.introduction();
</script>