第三章 基本概念

3.1 语法

3.1.1 区分大小写
  • ECMAScript 中的一切(变量、函数名和操作符)都区分大小写。
3.1.2 标识符
  • 所谓标识符,就是指变量、函数、属性的名字,或者函数的参数。标识符可以按照下列格式规则组合起来的一或多个字符:
    1. 第一个字符必须是一个字母、下划线(_)或一个美元符号($);
    2. 其他字符可以是字母、下划线、美元符号或数字。
  • 标识符中的字符也可以包含扩展的ASCII或Unicode字母字符,但不推荐这样。
  • 按照惯例,ECMAScipt 标识符采用驼峰大小写格式。
命名规范:
  1. 避免单字母名字。命名需要有可描述性。eslint: id-length
//bad
function q() {}

//good
function query() {}
  1. 命名对象,函数和实例时使用驼峰风格。eslint: camelcase jscs: requireCamelCaseOrUpperCaseIdentifiers
//bad
const OBJEcttsssss = {};
const this_is_my_object = {};
function c() {}

//good
const thisIsMyObject = {};
function thisIsMyFuntion() {}
  1. 仅当命名构造函数或类的时候使用帕斯卡风格。eslint: new-cap
//bad
function user(options) {
	this.name = options.name;
}

cosnt bad = new user({
	name: 'nope',
});

//good
class User {
	constructor(options) {
		this.name = option.name;
	}
}

const good = new User({
	name: 'yup',
});
  1. 不要使用下划线开头或结尾。eslint: no-underscore-dangle

原因:JavaScript对于属性和方法并没有隐私的概念.尽管下划线开头通常意味着’private’, 事实上这些属性是完全公开的,是公开API的一部分. 这种风格可能导致开发者错误地认为这不重要或者测试也不必要. 也就是说: 如果你想让其 “private”, 必须使其不可见.

//bad
this.__firstName__ = 'Panda';
this.firstName_ = 'Panda';
this._firstName = 'Panda';

//good
this.firstName = 'Panda';

//good, in environments where WeakMaps are avilable
//see https://kangax.github.io/compat-table/es6/#test-WeakMap
const firstNames = new WeakMap();
firstNames.set(this, 'Panda');
  1. 不要保存指向this的引用。使用箭头函数或函数的#bind。
//bad
function foo() {
	const self = this;
	return function () {
		console.log(self);
	};
}

//bad
function foo() {
	const that = this;
	return function () {
		console.log(that);
	};
}

//good
function foo() {
	return () => {
		console.log(this);
	};
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值