js变量声明6种方式
1.用关键字var声明变量
用var在函数外声明的对象为全局变量,在函数内声明的对象为局部变量;
用var可以对同一对象重复声明和赋值;
用var声明的对象具有变量提升的作用(声明提前,赋值不提前);
2.用关键字let声明变量
用let声明的变量在块级作用域内有效;
let声明的变量不存在变量提升;
let声明的变量存在暂时性死区(即同一个块级作用域中,在let声明该变量的语句之前,该变量已经存在,但是不能使用);
在同一个作用域内,对于let声明的变量不能重复声明。
3.用关键字const声明变量
const命令声明的值是常量(一旦声明,就不能发生改变);
const声明变量时,必须立即初始化,否则会报错(因为值一旦声明不可改变);
const声明的变量不存在变量提升;
const声明的变量存在暂时性死区;
const声明的变量只在块级作用域内有效;
const变量在同一个作用域内不能重复声明。
4.用function声明
函数生命类似于var,会提升到全局作用于或函数作用域的头部
5.import
加载文件
6.class
class
可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到.
新的class
写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已.
constructor
方法就是构造方法,而this
关键字则代表实例对象。
js命名规范
变量
命名方法:小驼峰式命名法。
命名规范:前缀应当是名词。
var maxCount = 10;
var tableTitle = 'LoginTable';
常量
命名方法:名称全部大写。
命名规范:使用大写字母和下划线来组合命名,下划线用以分割单词。
var MAX_COUNT = 10;
var URL = 'http://www.baidu.com';
函数
命名方法:小驼峰式命名法。
命名规范:前缀应当为动词。
命名建议:可使用常见动词约定
类 & 构造函数
命名方法:大驼峰式命名法,首字母大写。
命名规范:前缀为名称。
class Person {
public name: string;
constructor(name) {
this.name = name;
}
}
const person = new Person('mevyn');
类的成员
公共属性和方法:跟变量和函数的命名一样。
私有属性和方法:前缀为_(下划线),后面跟公共属性和方法一样的命名方式。
class Person {
private _name: string;
constructor() { }
// 公共方法
getName() {
return this._name;
}
// 公共方法
setName(name) {
this._name = name;
}
}
const person = new Person();
person.setName('mervyn');
person.getName(); // ->mervyn
全局变量与局部变量
全局变量:常常定义在函数外部,拥有全局作用域,即在 JavaScript 代码的任何地方都可以访问。
局部变量:定义在函数内部,只能在函数中使用的变量,作用范围是从函数开始到结尾,即在{}里。
注意:在函数内声明的变量只在函数体内有定义,即为局部变量,其作用域是局部性的。
var str1 = "hello1"; //定义一个全局变量
function a() {
var str2 = "hello2"; //定义一个局部变量
str3 = "hello3"; //定义一个全局变量
}