变量的名字又叫做标识符,需要遵守一定的规则
JavaScript 标识符必须以

  • 字母
  • 下划线_
  • 美元符号 $开头

变量命名风格

  • lowerCamelCase:首字母使用小写,小驼峰
  • UpperCamelCase:首字母大写,大驼峰
  • 用 _开头或结尾的变量用于私有变量
    • 一个前导下划线:表示非公有
    • 一个后缀下划线:避免关键字冲突
    • 两个前导下划线:当命名一个类属性引起名称冲突时使用
    • 两个前导和后缀下划线:有特殊用途的对象或者属性,例如 init和 str
  • 使用 class时用到的首字母是大写的,在编码中应尽量避免 定义 class
  • 不要使用保留字作为变量名,名字不能包含空格
  • javascript 对象名不需害怕过长,应明确定义每个变量意义

变量应用场景

is_superuser:『是否超级用户』,只会有两种值:是/不是
has_error:『有没有错误』,只会有两种值:有/没有
flag_found:『标志位变量』,只会有两种值:找到/没找到
allow_vip:『是否允许 VIP』,只会有两种值:允许/不允许
debug:『是否开启调试模式』,被当做 bool 主要是因为约定俗成

全局变量

全局变量,全部大写,多个单词用下划线隔开,
如需要阻止导入模块内的全局变量,可以加一个前导下划线,GLOBAL_VAR_NAME,GLOBAL_VAL

根目录文件

.babelrc
.editorconfig
.jshintrc
.github
.gitignore
node_modules

jsconfig.json
package.json
package-lock.json
webpack.config.js
gulpfile.babel.js
README.md

前端项目命名

router 路由
routes & views
server 服务端代码
config 配置文件

mvc

models
controllers
views
middlewares 中间件
legacy 兼容历史版本或兼容旧浏览器的代码

设计模式

adapters 适配器
components 组件
templates template 模板
plugins 插件
fixtures
app
build scripts 构建脚本
core 核心文件

测试命名

test tests tests 测试
unit, spec 单元测试,一般在 test目录下
e2e 端对端测试,一般在test目录下
benchmarks
src source 源代码
lib
docs 文档
libs 库文件 library的缩写
vendor 第三方库
tasks 任务
dist
assets 资源,一般用来放图片或 css文件
css styles
sass less
font fonts icon icons
js javascript typescript
img images
static 静态资源
examples example demo 示例
utils tools helpers 工具代码
bin 命令脚本

常用的英文单词

  1. util
  2. data
  3. api
  4. pages html 页面
  5. common public 公共文件
  6. resources
  7. packages 很多项目会打包出多个npm包,用来减小体积,一般会用packages来放不同的包
  8. client
  9. browser
  10. snapshots
  11. main
  12. themes
  13. support
  14. integration
  15. actions
  16. doc
  17. types
  18. ui
  19. shared
  20. basic
  21. bootstrap
  22. node
  23. layout
  24. mixins
  25. cli
  26. in
  27. services
  28. events
  29. layouts
  30. media
  31. jquery
  32. misc 杂项,miscellaneous的缩写
  33. ee
  34. demos
  35. stylesheets
  36. en
  37. .circleci
  38. files
  39. partials
  40. settings
  41. scss
  42. screenshots
  43. base
  44. theme
  45. default
  46. middleware
  47. locales
  48. com
  49. res
  50. json
  51. store
  52. svg
  53. android
  54. commands
  55. react
  56. java
  57. mocks
  58. specs
  59. reducers
  60. content
  61. containers
  62. editor
  63. _layouts
  64. plugin
  65. constants
  66. website
  67. wrapper
  68. ios
  69. style
  70. extensions
  71. list
  72. debug
  73. routes
  74. home
  75. webpack
  76. tabs
  77. gradle
  78. input
  79. component
  80. search
  81. site
  82. http
  83. button
  84. model
  85. form
  86. values
  87. table
  88. benchmark
  89. features
  90. es
  91. npm
  92. auth
  93. view
  94. module
  95. qunit
  96. markdown
  97. hooks
  98. javascripts
  99. functions
  100. flow-typed
  101. image
  102. AppIcon.appiconset
  103. fr
  104. errors
  105. prettify
  106. event
  107. nested
  108. .vscode
  109. admin
  110. directives
  111. toolbar
  112. dom
  113. elements
  114. web
  115. Base.lproj
  116. Images.xcassets
  117. xcschemes
  118. project
  119. error
  120. storage
  121. xcshareddata
  122. samples
  123. logo
  124. menu
  125. requirejs
  126. async
  127. custom
  128. guides
  129. dev
  130. slider
  131. text
  132. _includes
  133. loader
  134. filters
  135. script
  136. help
  137. flow
  138. generators
  139. tooltip
  140. global
  141. ja
  142. dialog
  143. foo
  144. mipmap-hdpi
  145. logs
  146. system
  147. mipmap-mdpi
  148. mipmap-xhdpi
  149. mipmap-xxhdpi
  150. internal
  151. simple
  152. windows
  153. advanced
  154. performance
  155. user
  156. parser
  157. redux
  158. functional
  159. blog
  160. keystores
  161. options
  162. gulp
  163. methods
  164. chrome
  165. mocks
  166. modal
  167. apps
  168. perf
  169. release
  170. dashboard
  171. file
  172. network
  173. classes
  174. bench
  175. tags
  176. lang
  177. cache
  178. users
  179. meta
  180. ru
  181. includes
  182. link
  183. angular
  184. xml
  185. audio
  186. python
  187. php
  188. init
  189. typings
  190. login
  191. navigation
  192. empty
  193. collections
  194. grid
  195. jest
  196. widgets
  197. logos
  198. renderer
  199. testing
  200. math
  201. autocomplete
  202. package
  203. helper
  204. external
  205. render
  206. rules
  207. notifications
  208. mode
  209. handlers
  210. subdir
  211. service
  212. date
  213. grunt
  214. path
  215. forms
  216. selection
  217. code
  218. animation
  219. header
  220. general
  221. bar
  222. array
  223. cs
  224. renderers
  225. filter
  226. locale
  227. configs
  228. local
  229. include
  230. pl
  231. effects
  232. playground
  233. ko
  234. schema
  235. mobile
  236. select
  237. it
  238. output
  239. color
  240. index
  241. string
  242. ext
  243. browserify
  244. migrations
  245. db
  246. display
  247. stores
  248. request
  249. shell
  250. docker
  251. log
  252. edit
  253. other
  254. selectors
  255. expected
  256. cases
  257. info
  258. controls
  259. console
  260. go
  261. controller
  262. sub
  263. exports
  264. ajax
  265. compiler
  266. express
  267. sounds
  268. import
  269. highlight
  270. design
  271. _locales
  272. providers
  273. snippets
  274. generator
  275. conf
  276. about
  277. platform
  278. sidebar
  279. dropdown
  280. www
  281. reference
  282. coffeescript
  283. babel
  284. page
  285. loaders
  286. extras
  287. install
  288. buttons
  289. properties
  290. Modules
  291. timeline
  292. function
  293. github
  294. ace
  295. security
  296. dir
  297. defaults
  298. App
  299. canvas
  300. shapes
  301. id
  302. _data
  303. query
  304. diff
  305. runtime
  306. mocha
  307. uk
  308. globals
  309. url
  310. panel
  311. widget
  312. video
  313. groovy
  314. ruby
  315. codemirror
  316. colors
  317. objects
  318. favicon
  319. reporters
  320. container
  321. handlebars
  322. stylus
  323. charts
  324. session
  325. utilities
  326. vue
  327. map
  328. print
  329. graph
  330. yaml
  331. languages
  332. recipes
  333. items
  334. navbar
  335. profile
  336. object
  337. preview
  338. translations
  339. amd
  340. number
  341. tutorials
  342. workers
  343. Button
  344. nginx
  345. syntax
  346. accordion
  347. dir
  348. fs
  349. private
  350. mock
  351. dialogs
  352. definitions
  353. deps
  354. imports
  355. meteor
  356. messages
  357. builder
  358. transforms
  359. attributes
  360. card
  361. setup
  362. hello-world
  363. ast
  364. touch
  365. bower_components
  366. require
  367. progress
  368. manual
  369. comment
  370. language
  371. documentation
  372. sandbox
  373. extension
  374. lua
  375. promise
  376. rust
  377. q
  378. keys
  379. datepicker
  380. queue
  381. polyfills
  382. tutorial
  383. linux
  384. modals
  385. sql
  386. es
  387. skins
  388. nl
  389. chat
  390. dir
  391. stream
  392. chart
  393. electron
  394. jsx
  395. Home
  396. preferences
  397. sk
  398. standalone
  399. proxy
  400. tree
  401. zh-cn
  402. root
  403. el
  404. tmp
  405. perl
  406. window
  407. coffee
  408. nodes
  409. getting-started
  410. create
  411. contents
  412. View
  413. facebook
  414. en-US
  415. out
  416. calendar
  417. .storybook
  418. commonjs
  419. basics
  420. share
  421. state
  422. websocket
  423. google
  424. dependencies
  425. modifiers
  426. upgrade
  427. guide
  428. menus
  429. schemas
  430. sample
  431. comments
  432. win
  433. old
  434. new
  435. lodash
  436. etc
  437. extend
  438. tables
  439. ms
  440. favicons
  441. font-awesome
  442. glob
  443. flash