一、HTML

1、文件命名规则

文件名称统一用小写的英文字母、数字和下划线的组合,其中不得包含汉字、空格和特殊字符;命名原则的指导思想一是使得你自己和工作组的每一个成员能够方便的理解每一个文件的意义,二是当我们在文件夹中使用“按名称排例”的命令时,同一种大类的文件能够排列在一起,以便我们查找、修改、替换、计算负载量等等操作

2、图片的命名原则

图片的名称分为头尾两部分,用下划线隔开,头部分表示此图片的大类性质,尾部分表示此图片的名称

banner_sohu.png  
banner_sina.png
3、文件存放位置规范
// 反例
├── cn                 //存放中文HTML文件
├── en                //存放中文HTML文件
├── images        //存放图片文件
├── media          //存放多媒体文件
├── css               //存放样式文件
├── js                 //存放JavaScript脚本
└── ...

4、结构、样式、行为分离

尽量确保文档和模板只包含 HTML 结构,样式都放到样式表里,行为都放到脚本里

5、结构、样式、行为分离

建议统一两个空格缩进(总之缩进统一即可),不要使用 Tab 或者 Tab、空格混搭。

6、文档类型

为每个 HTML 页面的第一行添加标准模式(standard mode)的声明, 这样能够确保在每个浏览器中拥有一致的表现。

<!DOCTYPE html>
7、文件编码

在 HTML中指定编码 <meta charset="utf-8"> ;

<meta charset="utf-8">
8、IE 兼容模式

优先使用最新版本的IE 和 Chrome 内核

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
9、SEO 优化
<meta name="keywords" content="关键词">
<meta name="description" content="描述">
10、图标(favicon)
<link rel="shortcut icon" href="img/favicon.ico" type="image/x-icon">
11、语义化

强烈建议使用语义化标签
语义化的 HTML 结构,有助于机器(搜索引擎)理解,另一方面多人协作时,能迅速了解开发者意图。

12、head 模板
<!DOCTYPE html> 
<html lang="zh-cmn-Hans"> 
    <head> 
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title>Style Guide</title> 
        <meta name="description" content="不超过150个字符"> 
        <meta name="keywords" content=""> 
        <meta name="author" content="name, email@gmail.com"> 
        <!-- 为移动设备添加 viewport --> 
        <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
        <link rel="shortcut icon" href="path/to/favicon.ico"> 
        <!-- iOS 图标 --> 
        <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-57x57-precomposed.png">
    </head>
</html>
13、HTML标签一律使用小写字母
<div>这是正例</div>

<DIV>这是反例</DIV>
14、闭合标签/自闭合

闭合标签/双标签(closing tag)需闭合

<div>这是正例</div>

<div>这是反例

自闭合/单标签(self-closing)无需闭合

<inpupt value="这是正例"/>

<inpupt value="这是反例"></input>
15、自定义属性

自定义属性规定以(data-*)形式出现

<div data-id="自定义属性值">自定义属性</div>
16、标签属性写完全

a连接的title(鼠标移入a显示的文字)
img标签的alt(图片连接错误显示的文字)

17、嵌套

严格嵌套约束在所有的浏览器下都不被允许;而语义嵌套约束,浏览器大多会容错处理,生成的文档树可能相互不太一样。
语义嵌套约束

  • <li> 用于 <ul> 或 <ol> 下;
  • <dd>, <dt> 用于 <dl> 下;
  • <thead>, <tbody>, <tfoot>, <tr>, <td> 用于 <table> 下;

严格嵌套约束

  • <a>里不可以嵌套交互式元素<a>、<button>、<select>等;
  • <p>里不可以嵌套块级元素<div>、<h1>~<h6>、<p>、<ul>/<ol>/<li>、<dl>/<dt>/<dd>、<form>等
18、布尔值属性

HTML5 规范中 disabled、checked、selected 等属性不用设置值。

 <inpupt tyle="text" disabled />
 
 <inpupt tyle="checkbox" checked />
 
 <select>
    <option value="1" selected></option>
 </select>
19、HTML 头部总结

<!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --><html lang="zh-cmn-Hans"> <!-- 更加标准的 lang 属性写法 http://zhi.hu/XyIa --><head>
    <!-- 声明文档使用的字符编码 -->
    <meta charset='utf-8'>
    <!-- 优先使用 IE 最新版本和 Chrome -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <!-- 页面描述 -->
    <meta name="description" content="不超过150个字符"/>
    <!-- 页面关键词 -->
    <meta name="keywords" content=""/>
    <!-- 网页作者 -->
    <meta name="author" content="name, email@gmail.com"/>
    <!-- 搜索引擎抓取 -->
    <meta name="robots" content="index,follow"/>
    <!-- 为移动设备添加 viewport -->
    <meta name="viewport" content="initial-scale=1, maximum-scale=3, minimum-scale=1, user-scalable=no">
    <!-- `width=device-width` 会导致 iPhone 5 添加到主屏后以 WebApp 全屏模式打开页面时出现黑边 http://bigc.at/ios-webapp-viewport-meta.orz -->
 
    <!-- iOS 设备 begin -->
    <meta name="apple-mobile-web-app-title" content="标题">
    <!-- 添加到主屏后的标题(iOS 6 新增) -->
    <meta name="apple-mobile-web-app-capable" content="yes"/>
    <!-- 是否启用 WebApp 全屏模式,删除苹果默认的工具栏和菜单栏 -->
 
    <meta name="apple-itunes-app" content="app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL">
    <!-- 添加智能 App 广告条 Smart App Banner(iOS 6+ Safari) -->
    <meta name="apple-mobile-web-app-status-bar-style" content="black"/>
    <!-- 设置苹果工具栏颜色 -->
    <meta name="format-detection" content="telphone=no, email=no"/>
    <!-- 忽略页面中的数字识别为电话,忽略email识别 -->
    <!-- 启用360浏览器的极速模式(webkit) -->
    <meta name="renderer" content="webkit">
    <!-- 避免IE使用兼容模式 -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- 不让百度转码 -->
    <meta http-equiv="Cache-Control" content="no-siteapp" />
    <!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 -->
    <meta name="HandheldFriendly" content="true">
    <!-- 微软的老式浏览器 -->
    <meta name="MobileOptimized" content="320">
    <!-- uc强制竖屏 -->
    <meta name="screen-orientation" content="portrait">
    <!-- QQ强制竖屏 -->
    <meta name="x5-orientation" content="portrait">
    <!-- UC强制全屏 -->
    <meta name="full-screen" content="yes">
    <!-- QQ强制全屏 -->
    <meta name="x5-fullscreen" content="true">
    <!-- UC应用模式 -->
    <meta name="browsermode" content="application">
    <!-- QQ应用模式 -->
    <meta name="x5-page-mode" content="app">
    <!-- windows phone 点击无高光 -->
    <meta name="msapplication-tap-highlight" content="no">
    <!-- iOS 图标 begin -->
    <link rel="apple-touch-icon-precomposed" href="/apple-touch-icon-57x57-precomposed.png"/>
    <!-- iPhone 和 iTouch,默认 57x57 像素,必须有 -->
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/apple-touch-icon-114x114-precomposed.png"/>
    <!-- Retina iPhone 和 Retina iTouch,114x114 像素,可以没有,但推荐有 -->
    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/apple-touch-icon-144x144-precomposed.png"/>
    <!-- Retina iPad,144x144 像素,可以没有,但推荐有 -->
    <!-- iOS 图标 end -->
 
    <!-- iOS 启动画面 begin -->
    <link rel="apple-touch-startup-image" sizes="768x1004" href="/splash-screen-768x1004.png"/>
    <!-- iPad 竖屏 768 x 1004(标准分辨率) -->
    <link rel="apple-touch-startup-image" sizes="1536x2008" href="/splash-screen-1536x2008.png"/>
    <!-- iPad 竖屏 1536x2008(Retina) -->
    <link rel="apple-touch-startup-image" sizes="1024x748" href="/Default-Portrait-1024x748.png"/>
    <!-- iPad 横屏 1024x748(标准分辨率) -->
    <link rel="apple-touch-startup-image" sizes="2048x1496" href="/splash-screen-2048x1496.png"/>
    <!-- iPad 横屏 2048x1496(Retina) -->
 
    <link rel="apple-touch-startup-image" href="/splash-screen-320x480.png"/>
    <!-- iPhone/iPod Touch 竖屏 320x480 (标准分辨率) -->
    <link rel="apple-touch-startup-image" sizes="640x960" href="/splash-screen-640x960.png"/>
    <!-- iPhone/iPod Touch 竖屏 640x960 (Retina) -->
    <link rel="apple-touch-startup-image" sizes="640x1136" href="/splash-screen-640x1136.png"/>
    <!-- iPhone 5/iPod Touch 5 竖屏 640x1136 (Retina) -->
    <!-- iOS 启动画面 end -->
 
    <!-- iOS 设备 end -->
    <meta name="msapplication-TileColor" content="#000"/>
    <!-- Windows 8 磁贴颜色 -->
    <meta name="msapplication-TileImage" content="icon.png"/>
    <!-- Windows 8 磁贴图标 -->
 
    <link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml"/>
    <!-- 添加 RSS 订阅 -->
    <link rel="shortcut icon" type="image/ico" href="/favicon.ico"/>
    <!-- 添加 favicon icon -->

    <!-- sns 社交标签 begin -->
    <!-- 参考微博API -->
    <meta property="og:type" content="类型" />
    <meta property="og:url" content="URL地址" />
    <meta property="og:title" content="标题" />
    <meta property="og:image" content="图片" />
    <meta property="og:description" content="描述" />
    <!-- sns 社交标签 end -->
 
    <title>标题</title></head>

二、CSS

注意:

  • ID和class命名越简短越好,便于提高代码效率
  • ID控制行为层(javascript)
  • class控制表示层(css)
  • 避免选择器嵌套层级过多,尽量少于 3 级
  • 建议使用动态css,如Less、Sass
1、样式文件命名
名称文件名
主要的master.css
模块module.css
基本共用base.css
布局,版面layout.css
主题themes.css
专栏columns.css
文字font.css
表单forms.css
补丁mend.css
打印print.css
2、文件顶部注释(推荐使用)
/**
**
    @description: 中文说明
    @author: 作者
    @update: 2013-04-13 18:32
**
**/
3、模块注释
/* mischieff 2019-7-17 */ 
4、class类前建议使用公司简写或个人标注

注意事项:

  • 一律小写;
  • 所用类名一律用英文;
  • 所用类名用一看就明白的单词.
.lz-class{}          /*  乐佐助简写 lz  */
.mis-class{}        /*  mischieff本人简写  */
5、建议使用(-)连接符
.lz-class{}
6、样式建议(示例)
.lz-login{
    opsition:absolute;
    top:0;
    left:0;
    border1px solid red;
    font-size16px;
}
/*
样式渲染时,由于定位(position)可以从正常的文档流中移除元素,并且还能覆盖盒模型(box model)相关的样式,因此排在首位。
盒模型决定了组件的尺寸和位置,因此排在第二位。其他属性只是影响组件的内部(inside)或者是不影响前两组属性,因此排在后面。
*/
7、引号使用
/*url() 、属性选择符、属性值使用双引号。*/
.lz-login{
    backgroundurl("http://ss.bdimg.com/static/superlanding/img/logo_top.png");
}
8、css属性尽量使用缩写
.lz-login{
    font: 12px/1.5 serif;
    padding: 0 10px;10
}
9、省略0后面的单位
.lz-login{
    margin: 0;
    padding: 0;
}
10、字体规则

为了防止文件合并及编码转换时造成问题,建议将样式中文字体名字改成对应的英文名字,如:
黑体(SimHei) 
宋体(SimSun) 
微软雅黑 (Microsoft Yahei,几个单词中间有空格组成的必须加引号)

11、字体大小

直接使用"font+字体大小"作为名称,如下所示:

.font12px {
    font-size: 12px; 
}
.font9pt {
    font-size: 9pt; 
}
12、浏览器属性支持度

为了页面性能考虑,如果浏览器不支持CSS3相关属性的,则该浏览器的某些特效将不再支持,属性的支持情况如下表所示(Y为支持,N为不支持)

浏览器圆角阴影动画文字阴影透明背景渐变空间变换
Chrome 5+YYYYYYY
Firefox 4+YYYYYYY
Safari 5+YYYYYYY
OperaYYYYYNY
Ie 9+YYNNYNY
Chrome 5-NNYYYYY
Safari 5-NYYYYNY
Ie 8NNNNNNN
Ie 7NNNNNNN
Ie 6NNNNNNN
13、浏览器字体

font-family 属性中的字体族名称应使用字体的英文 Family Name,其中如有空格,须放置在引号中;常见的字体族名称如下
西文字体在前,中文字体在后

body{
    font-family: Arial, "Microsoft YaHei", sans-serif;
}
字体操作系统Family Name
宋体 (中易宋体)WindowsSimSun
黑体 (中易黑体)WindowsSimHei
微软雅黑WindowsMicrosoft YaHei
微软正黑WindowsMicrosoft JhengHei
华文黑体Mac/iOSSTHeiti
冬青黑体Mac/iOSHiragino Sans GB
14、 命名规范
容器: container 
页头:header 
内容:content/container
页面主体:main 
页尾:footer 
导航:nav 
侧栏:sidebar 
栏目:column 
页面外围:wrapper 
左右中:left right center
导航:nav 
主导航:mainbav 
子导航:subnav 
顶导航:topnav 
边导航:sidebar 
左导航:leftsidebar 
右导航:rightsidebar 
菜单:menu 
子菜单:submenu 
标题: title
摘要: summary
标志:logo 
广告:banner 
登陆:login 
登录条:loginbar 
注册:regsiter 
搜索:search 
功能区:shop 
标题:title 
加入:joinus 
状态:status 
按钮:btn
滚动:scroll 
标签页:tab 
文章列表:list
提示信息:msg 
当前的: current 
小技巧:tips 
图标: icon 
注释:note 
指南:guild 
服务:service 
热点:hot 
新闻:news 
下载:download 
投票:vote 
合作伙伴:partner 
友情链接:link 
版权:copyright 

三、JavaScript

1、注释
/** 
* @param {Grid} grid 需要合并的Grid
* @autho mischieff  2015/07/21 
**/
注释名含义语法示例
@param描述参数的信息@param 参数名 {参数类型} 描述信息@param name {String} 传入名称
@return描述返回值的信息@return {返回类型} 描述信息@return {Boolean} true:可执行;false:不可执行
@autho描述此函数作者的信息@author 作者信息 [附属信息:如邮箱、日期]@author 张三 2015/07/21
@version描述此函数的版本号@version XX.XX.XX@version 1.0.3
1、var / let / const

建议不再使用 var,而使用 let / const,优先使用 const。任何一个变量的使用都要提前申明,除了 function 定义的函数可以随便放在任何位置。

2、私有属性、变量和方法以下划线 _ 开头
var _myStyle = {}
3、常量, 使用全部字母大写,单词间下划线分隔的命名方式
var my_Style = {}
4、函数/函数的参数 使用 Camel(驼峰) 命名法
function stringFormat(theBells){}
5、构造函数首字母大写(StringFormat)
function Student(name) {
    this.name = name;
}
var st = new Student('tom');
6、函数命名前缀为动词
动词含义返回值
can判断是否可执行某个动作 ( 权限 )函数返回一个布尔值true:可执行;false:不可执行
has判断是否含有某个值函数返回一个布尔值。true:含有此值;false:不含有此值
is判断是否为某个值函数返回一个布尔值。true:为某个值;false:不为某个值
get获取某个值函数返回一个非布尔值
set设置某个值无返回值、返回是否设置成功或者返回链式对象
//是否为可读
function canRead(){    
    return true;
}
7、True 和 False 布尔表达式

下面的布尔表达式都返回 false:

  • null
  • undefined
  • ‘’空字符串
  • 0 数字0

但小心下面的, 可都返回 true:

  • ‘0’字符串0
  • [] 空数组
  • {} 空对象
8、引号

建议不再使用双引号,静态字符串使用单引号,动态字符串使用反引号衔接。

// 反例
const foo = "后除"
const bar = foo + ",前端工程师"

// 正例
const foo = '后除'
const bar = `${foo},前端工程师`
9、函数

匿名函数统一使用箭头函数,多个参数/返回值时优先使用对象的结构赋值。

// 反例
function getPersonInfo (name, sex) {
    return [name, gender]
}

// 正例
function getPersonInfo ({name, sex}) {
    return {name, gender}
}

函数名统一使用驼峰命名,以大写字母开头申明的都是构造函数,使用小写字母开头的都是普通函数,也不该使用 new 操作符去操作普通函数。

10、对象

建议使用扩展运算符(...foo)拷贝对象而不是 Object.assign(target, ...sources)。

// 错误
const foo = {a: 0, b: 1}
const bar = Object.assign(foo, {c: 2})

// 正例
const foo = {a: 0, b: 1}
const bar = {...foo, c: 2}
11、模块

统一使用 import / export 的方式管理项目的模块

// lib.js
export default {}

// app.js
import app from './lib'

import 统一放在文件顶部。

12、三元操作符

操作符始终写在前一行, 以免分号的隐式插入产生预想不到的问题。

13、循环

for (var i = 0; i < arr.length; i++) {}这样的方式遍历不是很好,尤其当 arr 是 Dom 对象的时候,这样就会一直在访问 Dom 层,访问 Dom 层的代价是很大的。

for (var i = 0, j=arr.length; i < j; i++) {}这样的方式去用循环是比较好的,只会访问一次 Dom 层(不适用于 Dom 节点会动态更新的场景)。

四、es6

1、解构赋值

(1)数组的解构赋值

//最基本的写法
{
  let a,b
  [a,b] = [1,2]
  console.log(a,b) // 1,2
}

// 加默认值
{
  let a,b
  [a,b,c=3] = [1,2]
  console.log(a,b,c) // 1,2,3
}

// 使用场景// 1. 变量的值交换
{
  let a = 1
  let b = 2
  [a,b] = [b,a]
  console.log(a,b) //2, 1
}

// 2. 从函数的返回值取值
{
  function f(){
  return [1,2]
  }
  let a,b
  [a,b] = f()
  console.log(a,b) // 1, 2
}

// 3. 从函数的返回值中取值,并且弄成我们想要的格式
{
  function f(){
  return [1,2,3,4,5]
  }
  let a,b,c
  [a,,,b]=f()
  console.log(a,b) //1,4
}

// 4. 同样,取我们想要的
{
  function f(){
  return [1,2,3,4,5]
  }
  let a,b,c
  [a,...b]=f()
  console.log(a,b) //1, [2,3,4,5]
}

// 5. 取我们想要的,意思就是乐意要啥就拿啥
{
  let a,b,rest
  [a,b,..rest] = [1,2,3,4,5]
  console.log(a,b,rest) // 1, 2,  [3,4,5]
}

(2)对象的解构赋值

// 基本写法
{
  let a,b
  {{a,b} = {a:1,b:2}}
  console.log(a,b) // 1, 2
}

{
  let o = {a:1,q:true}
  let {a,p} = o
  console.log(a,q) //1,true
}

// 加默认值
{
  let  {a=10,b=1} = {a=1}
  console.log(a,b) //1,1 ,默认值会被后面的值替换
}

// 使用场景// 模拟后端接口,取我们想要的值
{
  let data = {
  title: 'a',
  test:[{
  title: 'b'
  desc: 'desc'
  }]
  }
   let {title:esTitle,test:[{title:cTitle}]} = data
   console.log(esTitle,cTitle) // a ,b
}
2、字符串的扩展

(1)遍历接口

// es5
let str='\u{20bb7}abc'
for(let i =0;i<str.length;i++){
    console.log(str[i]) // 乱码 乱码 a b c
}
// es6
for(let code of str){
    console.log(code) // 𠮷  a b c for of 可以正确识别
}

(2)新的常用方法

// includes  startsWith endsWith
{
    let str = 'string'
    console.log(str.includes('r')) // true
    console.log(str.startsWith('s')) // true
    console.log(str.endsWith('g')) // true
}

//复制 repeat
{
    let str = 'abc'
    console.log(str.repeat(2)) // abcabc
}

//忽略换行
{
    console.log(String.raw`Hi\n${1+2}`) Hi\n3
    console.log(S`Hi\n${1+2}`) // 换行
}

//  padStart padEnd 这两个还处于草案阶段,要使用babel-polyfill进行编译
{
    console.log('1',padStart(2.'0')) //01 第一个参数是长度,长度不够补0
    console.log('1',padEnd(2.'0')) //10 
}

(3)模板字符串

{
  let name="dou";
  let info="hello";
  let m=`i am ${name},${info}`;
  console.log(m); //i am dou, hello
}
3、数值的扩展

(1)新增方法,常用的

{
    // 检查是不是有限的 (-2^53,2^53)
    console.log(Number.isFinite(1)) // true
    console.log(Number.isFinite(NaN)) // false
    console.log(Number.isFinite(1/0)) // false
   
     // 检查是不是NaN
    console.log(Number.isNaN(NaN)) // true
    console.log(Number.isNaN(0)) // false
}

{
    // 检查是不是整数
    console.log(Number.isInteger(1)) //true
    // 这要注意
    console.log(Number.isInteger(1.0)) //true
    
    console.log(Number.isInteger(1.1)) //false
    console.log(Number.isInteger('1')) //false
}


{
    // 最大和最小安全数值
    console.log(Number.MAX_SAFE_INTEGER)
    console.log(Number.MIN_SAFE_INTEGER)
    
    console.log(Number.isSafeIntger(1)) //true
}

{    
    // 取整
    console.log(Math.trunc(1.1)) //1
    console.log(Math.trunc(1.9)) //1
    //判断一个数到底是正数、负数、还是零
    console.log(Math.sign(-2)) //-1
    console.log(Math.sign(0)) // 0
    console.log(Math.sign(2)) // 1
    console.log(Math.sign('2')) // 1
    console.log(Math.sign('aa')) // NaN
}

(2)新增方法,新特性

  • Array.from
  • Array.of
  • copyeWithin
  • find/findIndex
  • fill
  • entries\keys\values
  • includes
{
    // Array.of 将一组值,转换为数组
    let arr = Array.of(1,2,3,4)
    console.log(arr) [1,2,3,4]
    
    let emptyArr = Array.of()
    console.log(emptyArr) // []
    
    //Array.from 把类数组转为数组
    console.log(Array.from([1,2,3],function(item){
        return item*2 // 2,4,6
    }))
    
    //fill填充 第二个和第三个参数,用于指定填充的起始位置和结束位置
    console.log([1,'a',undefined].fill(1)) //[1,1,1]
    console.log([a,b,c],fill(7,1,3)) // [a,7,7]
}

// key values entries
{
    for(let i of [1,2,3].key()){
        console.log(i) //0,1,2
    }
    //兼容
    for(let v of [1,2,3].values()){
        console.log(v) //1,2,3
    }
    
    for(let [i,v] of [1,2,3].entries()){
        console.log(i,v) // 0 1    1 2    2 3
    }
}

//copyWithin将指定位置的成员复制到其他位置,并返回新数组
{
    console.log([1,2,3,4,5].copyWithin(0,3,4)) //[4,2,3,4,5]
}

//find findIndex 找出第一个符合条件的数组成员
{
    console.log([1,2,3,4,5,6].find(function(item){
        return item>3
    })) // 4  只找一次
    
    console.log([1,2,3,4,5,6].findIndex(function(item){
        return item>3
    })) // 3  只找一次
}

// includes 找数组里的值,可以找NaN
{
    console.log([1,2,NaN].includes(1)) //true
    console.log([1,2,NaN].includes(NaN)) //true
}
4、函数的扩展
  • 函数参数的默认值
  • rest参数
  • 箭头函数
  • 尾调用
// 函数参数的默认值
{
  function test(x, y = 'world'){
    console.log('默认值',x,y);
  }
  test('hello'); // hello world
  // 如果传的参数默认值会被替换
  test('hello','dou'); //hello dou
  
  // 注意这会带来一个作用域的问题
  var x = 1;
  function f(x, y = x) {
    console.log(y);
  }
  f(2) // 2
  
  // 设置默认值,会形成一个单独的作用域等到初始化结束,这个作用域就会消失 
  let x = 1;
  function f(y = x) {
    let x = 2;
    console.log(y);
  }  
  f() // 1
}

// rest参数
{
  function test3(...arg){
    for(let v of arg){
      console.log('rest',v);
    }
  }
  test3(1,2,3,4,'a') //1,2,3,4,a
  // rest参数会将传入的字符串转化为数组
}

//扩展运算符 相当于rest的逆运算=>把数组展开
{
  console.log(...[1,2,4]); // 1,2,4
  console.log('a',...[1,2,4]); // a,1,2,4
}

// 箭头函数 不在说了
{
  let arrow = v => v*2;
  console.log(arrow(1)) // 2 
}

// 尾调用,优化用,不再展开,基本形式如下
{
  function tail(x){
    console.log('tail',x);
  }
  function fx(x){
    return tail(x)
  }
  fx(123) // tail 123
}
5、对象的扩展
  • 简洁表示法
  • 属性表达式
  • 新增API
  • 扩展运算符
{
  // 简洁表示法
  let o=1;
  let k=2;
  let es5={
    o:o,
    k:k
  };
  let es6={
    o,
    k
  };
  console.log(es5,es6); // 是一样的结果

  let es5_method={
    hello:function(){
      console.log('hello');
    }
  };
  let es6_method={
    hello(){
      console.log('hello');
    }
  };
  console.log(es5_method.hello(),es6_method.hello()); // 也是一样的,在vue中我们就是用的简洁表示
}

{
  // 属性表达式
  let a='b';
  let es5_obj={
    a:'c',
    b:'c'
  };

  let es6_obj={
    [a]:'c'
  }
  console.log(es5_obj,es6_obj) // es5的就不说了 es6输出 {b:c} 
}

{
  // is
  console.log(Object.is('abc','abc'),'abc'==='abc') // true true
  console.log(Object.is([],[]),[]===[]); // false false
  // 注意
  +0 === -0 //true
  NaN === NaN // false
  
  Object.is(+0, -0) // false
  Object.is(NaN, NaN) // true

  //assign
  console.log('拷贝',Object.assign({a:'a'},{b:'b'})) // {a:a,b:b} 注意这是浅拷贝
  
  // entries
  let test={k:123,o:456};
  for(let [key,value] of Object.entries(test)){
    console.log([key,value])
    // [k,123] [o,456]
  }
}

{
  // 扩展运算符
   let {a,b,...c}={a:'test',b:'kill',c:'ddd',d:'ccc'};
  // babel对这个支持还不是很友好 
   c={
     c:'ddd',
     d:'ccc'
   }
}
6、set和map以及和数组对象的对比

(1)Set


// 声明方式1
{
  let list = new Set()
  list.add(5)
  list.add(7)

  console.log(list.size) // 2
}

// 声明方式2
{
  let arr = [1,2,3,4,5]
  let list = new Set(arr)

  console.log(list.size) // 5
}

// 不可以有重复的成员
{
  let list = new Set()
  list.add(1)
  list.add(2)
  list.add(1)

  console.log(list); // 只有 1,2// 用途 数组去重
  let arr=[1,2,3,1,2]
  let list2=new Set(arr)

  console.log(list2) // 1,2,3
}

// api crud 不再多说 看栗子
{
  let arr=['add','delete','clear','has']
  let list=new Set(arr)

  console.log('has',list.has('add')) // true
  console.log('delete',list.delete('add'),list) // 'delete','clear','has'
  list.clear() // 没了都删了
  console.log('list',list)
}

// 遍历 都是我们常用的
{
  let arr=['add','delete','clear','has']
  let list=new Set(arr)

  for(let key of list.keys()){
    console.log('keys',key)
  }
  for(let value of list.values()){
    console.log('value',value)
  }
  for(let [key,value] of list.entries()){
    console.log('entries',key,value)
  }

  list.forEach(function(item){console.log(item)})
}

// weakSet 这玩意成员只能是对象,Set有的方法他都有
{
  let weakList=new WeakSet()

  let arg={}

  weakList.add(arg)

  console.log(weakList);
}

(2)Map

// 声明方式
// map的key可以是任意数据类型
{
  let map = new Map()
  let arr=['123']

  map.set(arr,456)

  console.log('map',map,map.get(arr)) // 456
}

// 常用api,和set很类似,放控制台打印就明白
{
  let map = new Map([['a',123],['b',456]])
  console.log('map',map)
  console.log('size',map.size)
  console.log('delete',map.delete('a'),map)
  console.log('clear',map.clear(),map)
}

// weakmap 和weakSet一样 成员必须是对象
{
  let weakmap=new WeakMap()

  let o={}
  weakmap.set(o,123)
  console.log(weakmap.get(o))
}

(3)Set,Map和数组,对象的横向对比

{
  // map和array的对比
  // 数据结构横向对比,增,查,改,删
  let map=new Map()
  let array=[]
  // 增
  map.set('t',1)
  array.push({t:1})

  console.info('map-array',map,array)

  // 查
  let map_exist=map.has('t');
  let array_exist=array.find(item=>item.t)
  console.info('map-array',map_exist,array_exist)

  // 改
  map.set('t',2)
  array.forEach(item=>item.t?item.t=2:'')
  console.info('map-array-modify',map,array)

  // 删
  map.delete('t')
  let index=array.findIndex(item=>item.t)
  array.splice(index,1)
  console.info('map-array-empty',map,array)
}

{
  // set和array的对比
  let set=new Set()
  let array=[]

  // 增
  set.add({t:1})
  array.push({t:1})

  console.info('set-array',set,array)

  // 查
  let set_exist=set.has({t:1})
  let array_exist=array.find(item=>item.t)
  console.info('set-array',set_exist,array_exist)

  // 改
  set.forEach(item=>item.t?item.t=2:'')
  array.forEach(item=>item.t?item.t=2:'')
  console.info('set-array-modify',set,array)

  // 删
  set.forEach(item=>item.t?set.delete(item):'')
  let index=array.findIndex(item=>item.t)
  array.splice(index,1)
  console.info('set-array-empty',set,array)
}

{
  // map,set,object对比
  let item={t:1}
  let map=new Map()
  let set=new Set()
  let obj={}

  // 增
  map.set('t',1)
  set.add(item)
  obj['t']=1

  console.info('map-set-obj',obj,map,set)

  // 查
  console.info({
    map_exist:map.has('t'),
    set_exist:set.has(item),
    obj_exist:'t' in obj
  })

  // 改
  map.set('t',2)
  item.t=2
  obj['t']=2
  console.info('map-set-obj-modify',obj,map,set)

  // 删除
  map.delete('t')
  set.delete(item)
  delete obj['t']
  console.info('map-set-obj-empty',obj,map,set)
}

五、vue

1、组件名

组件名为多个单词,并且用连接线(-)连接,避免与 HTML 标签冲突,并且结构更加清晰。

<page-header></page-header>
2、组件文件

(1)组件的名字应该始终是以连接线(-)连接的单词,一方面可与组件名一致,使项目更加清晰,另一方面这样的写法对编辑器引入也很友好。

// 反例
├── index.html
├── main.js
└── components
    └── pageheader

// 正例
├── index.html
├── main.js
└── components
    └── page-header //此处为(-)连接

(2)对于例如按钮、下拉框或表格这样的基础组件应该始终以一个特定的前缀开头,区别与其他业务
组件


// 反例
├── index.html
├── main.js
└── components
    ├── page-header
    ├── page-article
    ├── page-header
    ├── mazey-button
    ├── mazey-select
    └── mazey-table

// 正例
├── index.html
├── main.js
└── components
 |   ├── page-header
 |   ├── page-article
 |   └── page-header
 └── base
    ├── mazey-button
    ├── mazey-select
    └── mazey-table
3、Prop命名

定义 Prop 的时候应该始终以驼峰格式命名*,在父组件赋值的时候使用连接线(-)。这里遵循每个语言的特性,因为在 HTML 标记中对大小写是不敏感的,使用连接线更加友好;而在 JavaScript 中更自然的是驼峰命名。

// 反例
props: {
    article-status: Boolean
}
//HTML
<article-item :articleStatus="true"></article-item>

// 正例
props: {
    articleStatus: Boolean
}
//HTML
<article-item :article-status="true"></article-item>
4、Prop定义

Prop 的定义应该尽量详细的指定其类型、默认值和验证。

// 反例
props: ['attrM', 'attrA']

// 正例
props: {
    attrM: Number,
    attrA: {
        type: String,
        required: true
    },
    attrZ: {
        type: Object,
        default: function () { // 数组/对象的默认值应该由一个工厂函数返回
            return {
                msg: '成就你我'
            }
        }
    }
}
5、v-for在执行

v-for 遍历的时候,总是应该带上 key 值使更新 DOM 时渲染效率更高。

<li v-for="item in list" :key="item.id">
    {{ item.title }}
</li>
6、v-if / v-else-if / v-else

若同一组 v-if 逻辑控制中的元素逻辑相同,Vue 为了更高效的元素切换,会复用相同的部分,例如:value。为了避免复用带来的不合理效果,应该在同种元素上加上 key 做标识。

// 反例
<div v-if="hasData">
    <span>{{ mazeyData }}</span>
</div>
<div v-else>
    <span>无数据</span>
</div>

// 正例
<div v-if="hasData" key="mazey-data">
    <span>{{ mazeyData }}</span>
</div>
<div v-else key="mazey-none">
    <span>无数据</span>
</div>
7、指令缩写

为了统一规范始终使用指令缩写,使用v-bind,v-on并没有什么不好,这里仅为了统一规范

<input :value="userName" @click="userName">
8、样式

为了避免样式冲突,整个项目要么全都使用 scoped 特性,要么使用 BEM 约定。

9、单文件组件的顶级元素顺序
// 反例
<style>
/* CSS */
</style>

<script>
/* JavaScript */
</script>

<template>
<!-- HTML -->
</template>

// 正例
<template>
<!-- HTML -->
</template>

<script>
/* JavaScript */
</script>

<style>
/* CSS */
</style>

六、React

1、各类型命名规范
名称命名方法词汇种类说明举例
局部变量名Camel命名法名词fristName
全局变量名Camel命名法名词前缀:ggFristName
参数名Camel命名法名词fristName
方法/属性Camel命名法名词fristName
私有(保护)成员Camel命名法名词前缀:__fristName
常量名名词下划线+全体大写ADD_METHOD
类名Pascal命名法名词AtiveDic
Bool类型Camel命名法名词前缀:is/hashasChild
1、函数与类的命名
动词含义举例
Can判断是否可以执行某个权限CanLogin
Has判断是否含有某个值HasToken
Is判断是否为某个值IsShowModel
Get获取某个值GetUserId
Set设置某个值SetCookie
Load加载某些数据LoadList
Update更新某些数据UpdateUserInfo
Del删除某些数据DelMenu
2、props的使用

定义:大多数组件在定义时就可以通过各种自定义参数来实现组件的定制。
编程注意事项:

  • 在页面中禁止直接修改propsthis.props.name = 'Alen'。
  • 在调用props时尽量使用扩展符,如下所示
//正例
const { name } = this.porps;
console.log(name);

//反例
console.log(this.props.name);
  • 在传递props时,如无必要,不能传递整个props,只需传递props中所需要的属性(在models中的
3、state的使用

定义:State是一个组件的UI数据模型,是组件渲染时的数据依据。
编程注意事项:

  • 绝对不要 直接改变 this.state,你可以将它看作是一个不可变得变量(如需改变必须调用setState)。如下所示:
//正例
this.setState({name:'Lucy'});
    
//反例
this.state.name = 'Lucy';
  • setState时异步的,若执行setState后需马上调用,可以使用这些方法转化为同步。(方法)
  • 和渲染无关的状态尽量不要放在 state 中来管理
  • 在State更新时,如果更新的值涉及到了state和props,我需要注意在调用setState时不要直接使用this.props和this.state。如下所示:
//正例
this.setState((prevState, props) => ({
    name: prevState.name + props.increment
}));
    
//反例
this.setState({name:this.state.name});
  • 禁止在shouldComponentUpdate或者componentWillUpdate方法中调用setState
  • 最好在componentDidMount中调用
4、何时调用哪个
  • 如果数据需要跨组件传输,则放在props中进行传递
  • 如果数据只在本组件使用,并且涉及到在render中进行渲染,则放在state中进行处理
  • 其余数据可在组件中直接定义。
5、代码语义化

尽可能减少代码中的注释。可以通过让变量名更语义化、只注释复杂、潜在逻辑,来减少注释量,同时也提高了可维护性,毕竟不用总在代码与注释之间同步了。

6、尽量使用单标签
//正例
render(){
    return(
    <div>
        ...
        <UserInfo />
        ...
    </div>
    );
}
    
//反例
render(){
    return(
    <div>
        ...
        <UserInfo></UserInfo>
        ...
    </div>
    );
}
7、在标签中默认的都是true
//正例
<Foo hidden={true}/>
    
//反例
<Foo hidden />
8、在map循环时,不要用index作为每个标签的key
//正例
{todos.map(todo => (
  <Todo {...todo} key={todo.id} />
))}
    
//反例
{todos.map((todo, index) =>
  <Todo{...todo} key={index} />
)}
9、使用ref的回调
//正例
<Foo ref={(ref) => { this.myRef = ref; }} />
    
//反例
<Foo ref="myRef"/>
10、渲染与判断逻辑分开

在render中只进行页面的渲染,不作对数据或者逻辑的处理

11、解构
// 反例  
const splitLocale = locale.split('‑');  
const language = splitLocale[0];  
const country = splitLocale[1]; 

// 正例  
const [language, country] = locale.split('‑');
12、传入的变量

对所有定义的或者传入的变量,都进行默认设置或者判定是否为undefined,防止数据未定义时程序报错。

// 反例  
onChange(value => console.log(value.name))  
// 反例  
onChange((value) => {   
    if (!value) {
          value = {}
    }    
    console.log(value.name)  
})  
// 正例  
onChange((value = {}) => console.log(value.name))  
// 正例  
onChange(value => console.log(value?.name))

不要信任任何回调函数给你的变量,它们随时可能是 undefined ,使用初始值是个不错的选择,但有的时候初始值没什么意 义,使用?.语法可以安全的访问属性

13、自定义变量
//反例
let newslist = this.props.newslist;
let b = a  // a为数组

//正例 
let { newslist = [] } = this.props;
let b = a || [];
%23%23%20%E4%B8%80%E3%80%81HTML%0A%23%23%23%23%23%201%E3%80%81%E6%96%87%E4%BB%B6%E5%91%BD%E5%90%8D%E8%A7%84%E5%88%99%0A%0A%E6%96%87%E4%BB%B6%E5%90%8D%E7%A7%B0%E7%BB%9F%E4%B8%80%E7%94%A8%E5%B0%8F%E5%86%99%E7%9A%84%E8%8B%B1%E6%96%87%E5%AD%97%E6%AF%8D%E3%80%81%E6%95%B0%E5%AD%97%E5%92%8C%E4%B8%8B%E5%88%92%E7%BA%BF%E7%9A%84%E7%BB%84%E5%90%88%EF%BC%8C%E5%85%B6%E4%B8%AD%E4%B8%8D%E5%BE%97%E5%8C%85%E5%90%AB%E6%B1%89%E5%AD%97%E3%80%81%E7%A9%BA%E6%A0%BC%E5%92%8C%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6%EF%BC%9B%E5%91%BD%E5%90%8D%E5%8E%9F%E5%88%99%E7%9A%84%E6%8C%87%E5%AF%BC%E6%80%9D%E6%83%B3%E4%B8%80%E6%98%AF%E4%BD%BF%E5%BE%97%E4%BD%A0%E8%87%AA%E5%B7%B1%E5%92%8C%E5%B7%A5%E4%BD%9C%E7%BB%84%E7%9A%84%E6%AF%8F%E4%B8%80%E4%B8%AA%E6%88%90%E5%91%98%E8%83%BD%E5%A4%9F%E6%96%B9%E4%BE%BF%E7%9A%84%E7%90%86%E8%A7%A3%E6%AF%8F%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E7%9A%84%E6%84%8F%E4%B9%89%EF%BC%8C%E4%BA%8C%E6%98%AF%E5%BD%93%E6%88%91%E4%BB%AC%E5%9C%A8%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E4%BD%BF%E7%94%A8%E2%80%9C%E6%8C%89%E5%90%8D%E7%A7%B0%E6%8E%92%E4%BE%8B%E2%80%9D%E7%9A%84%E5%91%BD%E4%BB%A4%E6%97%B6%EF%BC%8C%E5%90%8C%E4%B8%80%E7%A7%8D%E5%A4%A7%E7%B1%BB%E7%9A%84%E6%96%87%E4%BB%B6%E8%83%BD%E5%A4%9F%E6%8E%92%E5%88%97%E5%9C%A8%E4%B8%80%E8%B5%B7%EF%BC%8C%E4%BB%A5%E4%BE%BF%E6%88%91%E4%BB%AC%E6%9F%A5%E6%89%BE%E3%80%81%E4%BF%AE%E6%94%B9%E3%80%81%E6%9B%BF%E6%8D%A2%E3%80%81%E8%AE%A1%E7%AE%97%E8%B4%9F%E8%BD%BD%E9%87%8F%E7%AD%89%E7%AD%89%E6%93%8D%E4%BD%9C%0A%0A%23%23%23%23%23%202%E3%80%81%E5%9B%BE%E7%89%87%E7%9A%84%E5%91%BD%E5%90%8D%E5%8E%9F%E5%88%99%0A%E5%9B%BE%E7%89%87%E7%9A%84%E5%90%8D%E7%A7%B0%E5%88%86%E4%B8%BA%E5%A4%B4%E5%B0%BE%E4%B8%A4%E9%83%A8%E5%88%86%EF%BC%8C%E7%94%A8%E4%B8%8B%E5%88%92%E7%BA%BF%E9%9A%94%E5%BC%80%EF%BC%8C%E5%A4%B4%E9%83%A8%E5%88%86%E8%A1%A8%E7%A4%BA%E6%AD%A4%E5%9B%BE%E7%89%87%E7%9A%84%E5%A4%A7%E7%B1%BB%E6%80%A7%E8%B4%A8%EF%BC%8C%E5%B0%BE%E9%83%A8%E5%88%86%E8%A1%A8%E7%A4%BA%E6%AD%A4%E5%9B%BE%E7%89%87%E7%9A%84%E5%90%8D%E7%A7%B0%0A%60%60%60javascript%0Abanner_sohu.png%C2%A0%20%0Abanner_sina.png%0A%60%60%60%0A%23%23%23%23%23%203%E3%80%81%E6%96%87%E4%BB%B6%E5%AD%98%E6%94%BE%E4%BD%8D%E7%BD%AE%E8%A7%84%E8%8C%83%0A%60%60%60javascript%0A%2F%2F%20%E5%8F%8D%E4%BE%8B%0A%E2%94%9C%E2%94%80%E2%94%80%20cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E5%AD%98%E6%94%BE%E4%B8%AD%E6%96%87HTML%E6%96%87%E4%BB%B6%0A%E2%94%9C%E2%94%80%E2%94%80%20en%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E5%AD%98%E6%94%BE%E4%B8%AD%E6%96%87HTML%E6%96%87%E4%BB%B6%0A%E2%94%9C%E2%94%80%E2%94%80%20images%20%20%20%20%20%20%20%20%2F%2F%E5%AD%98%E6%94%BE%E5%9B%BE%E7%89%87%E6%96%87%E4%BB%B6%0A%E2%94%9C%E2%94%80%E2%94%80%20media%20%20%20%20%20%20%20%20%20%20%2F%2F%E5%AD%98%E6%94%BE%E5%A4%9A%E5%AA%92%E4%BD%93%E6%96%87%E4%BB%B6%0A%E2%94%9C%E2%94%80%E2%94%80%20css%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E5%AD%98%E6%94%BE%E6%A0%B7%E5%BC%8F%E6%96%87%E4%BB%B6%0A%E2%94%9C%E2%94%80%E2%94%80%20js%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%E5%AD%98%E6%94%BEJavaScript%E8%84%9A%E6%9C%AC%0A%E2%94%94%E2%94%80%E2%94%80%20...%0A%0A%60%60%60%0A%23%23%23%23%23%204%E3%80%81%E7%BB%93%E6%9E%84%E3%80%81%E6%A0%B7%E5%BC%8F%E3%80%81%E8%A1%8C%E4%B8%BA%E5%88%86%E7%A6%BB%0A%0A%E5%B0%BD%E9%87%8F%E7%A1%AE%E4%BF%9D%E6%96%87%E6%A1%A3%E5%92%8C%E6%A8%A1%E6%9D%BF%E5%8F%AA%E5%8C%85%E5%90%AB%20HTML%20%E7%BB%93%E6%9E%84%EF%BC%8C%E6%A0%B7%E5%BC%8F%E9%83%BD%E6%94%BE%E5%88%B0%E6%A0%B7%E5%BC%8F%E8%A1%A8%E9%87%8C%EF%BC%8C%E8%A1%8C%E4%B8%BA%E9%83%BD%E6%94%BE%E5%88%B0%E8%84%9A%E6%9C%AC%E9%87%8C%0A%23%23%23%23%23%205%E3%80%81%E7%BB%93%E6%9E%84%E3%80%81%E6%A0%B7%E5%BC%8F%E3%80%81%E8%A1%8C%E4%B8%BA%E5%88%86%E7%A6%BB%0A%0A%E5%BB%BA%E8%AE%AE%E7%BB%9F%E4%B8%80%E4%B8%A4%E4%B8%AA%E7%A9%BA%E6%A0%BC%E7%BC%A9%E8%BF%9B%EF%BC%88%E6%80%BB%E4%B9%8B%E7%BC%A9%E8%BF%9B%E7%BB%9F%E4%B8%80%E5%8D%B3%E5%8F%AF%EF%BC%89%EF%BC%8C%E4%B8%8D%E8%A6%81%E4%BD%BF%E7%94%A8%20Tab%20%E6%88%96%E8%80%85%20Tab%E3%80%81%E7%A9%BA%E6%A0%BC%E6%B7%B7%E6%90%AD%E3%80%82%0A%0A%23%23%23%23%23%206%E3%80%81%E6%96%87%E6%A1%A3%E7%B1%BB%E5%9E%8B%0A%E4%B8%BA%E6%AF%8F%E4%B8%AA%20HTML%20%E9%A1%B5%E9%9D%A2%E7%9A%84%E7%AC%AC%E4%B8%80%E8%A1%8C%E6%B7%BB%E5%8A%A0%E6%A0%87%E5%87%86%E6%A8%A1%E5%BC%8F%EF%BC%88standard%20mode%EF%BC%89%E7%9A%84%E5%A3%B0%E6%98%8E%EF%BC%8C%20%E8%BF%99%E6%A0%B7%E8%83%BD%E5%A4%9F%E7%A1%AE%E4%BF%9D%E5%9C%A8%E6%AF%8F%E4%B8%AA%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%AD%E6%8B%A5%E6%9C%89%E4%B8%80%E8%87%B4%E7%9A%84%E8%A1%A8%E7%8E%B0%E3%80%82%0A%60%60%60html%0A%3C!DOCTYPE%20html%3E%0A%60%60%60%0A%23%23%23%23%23%207%E3%80%81%E6%96%87%E4%BB%B6%E7%BC%96%E7%A0%81%0A%E5%9C%A8%20HTML%E4%B8%AD%E6%8C%87%E5%AE%9A%E7%BC%96%E7%A0%81%20%3Cmeta%20charset%3D%22utf-8%22%3E%20%EF%BC%9B%0A%20%60%60%60html%0A%3Cmeta%20charset%3D%22utf-8%22%3E%0A%60%60%60%0A%23%23%23%23%23%208%E3%80%81IE%20%E5%85%BC%E5%AE%B9%E6%A8%A1%E5%BC%8F%0A%E4%BC%98%E5%85%88%E4%BD%BF%E7%94%A8%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%E7%9A%84IE%20%E5%92%8C%20Chrome%20%E5%86%85%E6%A0%B8%0A%60%60%60html%0A%3Cmeta%20http-equiv%3D%22X-UA-Compatible%22%20content%3D%22IE%3Dedge%2Cchrome%3D1%22%3E%0A%60%60%60%0A%0A%23%23%23%23%23%209%E3%80%81SEO%20%E4%BC%98%E5%8C%96%0A%60%60%60html%0A%3Cmeta%20name%3D%22keywords%22%20content%3D%22%E5%85%B3%E9%94%AE%E8%AF%8D%22%3E%0A%3Cmeta%20name%3D%22description%22%20content%3D%22%E6%8F%8F%E8%BF%B0%22%3E%0A%60%60%60%0A%0A%23%23%23%23%23%2010%E3%80%81%E5%9B%BE%E6%A0%87%EF%BC%88favicon%EF%BC%89%0A%0A%60%60%60html%0A%3Clink%20rel%3D%22shortcut%20icon%22%20href%3D%22img%2Ffavicon.ico%22%20type%3D%22image%2Fx-icon%22%3E%0A%60%60%60%0A%23%23%23%23%23%2011%E3%80%81%E8%AF%AD%E4%B9%89%E5%8C%96%0A%60%E5%BC%BA%E7%83%88%E5%BB%BA%E8%AE%AE%E4%BD%BF%E7%94%A8%E8%AF%AD%E4%B9%89%E5%8C%96%E6%A0%87%E7%AD%BE%60%0A%E8%AF%AD%E4%B9%89%E5%8C%96%E7%9A%84%20HTML%20%E7%BB%93%E6%9E%84%EF%BC%8C%E6%9C%89%E5%8A%A9%E4%BA%8E%E6%9C%BA%E5%99%A8%EF%BC%88%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%EF%BC%89%E7%90%86%E8%A7%A3%EF%BC%8C%E5%8F%A6%E4%B8%80%E6%96%B9%E9%9D%A2%E5%A4%9A%E4%BA%BA%E5%8D%8F%E4%BD%9C%E6%97%B6%EF%BC%8C%E8%83%BD%E8%BF%85%E9%80%9F%E4%BA%86%E8%A7%A3%E5%BC%80%E5%8F%91%E8%80%85%E6%84%8F%E5%9B%BE%E3%80%82%0A%0A%23%23%23%23%23%2012%E3%80%81head%20%E6%A8%A1%E6%9D%BF%0A%60%60%60html%0A%3C!DOCTYPE%20html%3E%20%0A%3Chtml%20lang%3D%22zh-cmn-Hans%22%3E%20%0A%20%20%20%20%3Chead%3E%20%0A%20%20%20%20%20%20%20%20%3Cmeta%20charset%3D%22utf-8%22%3E%0A%20%20%20%20%20%20%20%20%3Cmeta%20http-equiv%3D%22X-UA-Compatible%22%20content%3D%22IE%3Dedge%2Cchrome%3D1%22%3E%0A%20%20%20%20%20%20%20%20%3Ctitle%3EStyle%20Guide%3C%2Ftitle%3E%20%0A%20%20%20%20%20%20%20%20%3Cmeta%20name%3D%22description%22%20content%3D%22%E4%B8%8D%E8%B6%85%E8%BF%87150%E4%B8%AA%E5%AD%97%E7%AC%A6%22%3E%20%0A%20%20%20%20%20%20%20%20%3Cmeta%20name%3D%22keywords%22%20content%3D%22%22%3E%20%0A%20%20%20%20%20%20%20%20%3Cmeta%20name%3D%22author%22%20content%3D%22name%2C%20email%40gmail.com%22%3E%20%0A%20%20%20%20%20%20%20%20%3C!--%20%E4%B8%BA%E7%A7%BB%E5%8A%A8%E8%AE%BE%E5%A4%87%E6%B7%BB%E5%8A%A0%20viewport%20--%3E%20%0A%20%20%20%20%20%20%20%20%3Cmeta%20name%3D%22viewport%22%20content%3D%22width%3Ddevice-width%2C%20initial-scale%3D1.0%22%3E%20%0A%20%20%20%20%20%20%20%20%3Clink%20rel%3D%22shortcut%20icon%22%20href%3D%22path%2Fto%2Ffavicon.ico%22%3E%20%0A%20%20%20%20%20%20%20%20%3C!--%20iOS%20%E5%9B%BE%E6%A0%87%20--%3E%20%0A%20%20%20%20%20%20%20%20%3Clink%20rel%3D%22apple-touch-icon-precomposed%22%20href%3D%22%2Fapple-touch-icon-57x57-precomposed.png%22%3E%0A%20%20%20%20%3C%2Fhead%3E%0A%3C%2Fhtml%3E%0A%60%60%60%0A%23%23%23%23%23%2013%E3%80%81HTML%E6%A0%87%E7%AD%BE%E4%B8%80%E5%BE%8B%E4%BD%BF%E7%94%A8%E5%B0%8F%E5%86%99%E5%AD%97%E6%AF%8D%0A%20%60%60%60html%0A%20%3Cdiv%3E%E8%BF%99%E6%98%AF%E6%AD%A3%E4%BE%8B%3C%2Fdiv%3E%0A%20%0A%20%3CDIV%3E%E8%BF%99%E6%98%AF%E5%8F%8D%E4%BE%8B%3C%2FDIV%3E%0A%60%60%60%0A%23%23%23%23%23%2014%E3%80%81%E9%97%AD%E5%90%88%E6%A0%87%E7%AD%BE%2F%E8%87%AA%E9%97%AD%E5%90%88%0A**%E9%97%AD%E5%90%88%E6%A0%87%E7%AD%BE%2F%E5%8F%8C%E6%A0%87%E7%AD%BE%EF%BC%88closing%20tag%EF%BC%89%E9%9C%80%E9%97%AD%E5%90%88**%0A%20%60%60%60html%0A%20%3Cdiv%3E%E8%BF%99%E6%98%AF%E6%AD%A3%E4%BE%8B%3C%2Fdiv%3E%0A%20%0A%20%3Cdiv%3E%E8%BF%99%E6%98%AF%E5%8F%8D%E4%BE%8B%0A%60%60%60%0A**%E8%87%AA%E9%97%AD%E5%90%88%2F%E5%8D%95%E6%A0%87%E7%AD%BE%EF%BC%88self-closing%EF%BC%89%E6%97%A0%E9%9C%80%E9%97%AD%E5%90%88**%0A%20%60%60%60html%0A%20%3Cinpupt%20value%3D%22%E8%BF%99%E6%98%AF%E6%AD%A3%E4%BE%8B%22%2F%3E%0A%20%0A%20%3Cinpupt%20value%3D%22%E8%BF%99%E6%98%AF%E5%8F%8D%E4%BE%8B%22%3E%3C%2Finput%3E%0A%60%60%60%0A%23%23%23%23%23%2015%E3%80%81%E8%87%AA%E5%AE%9A%E4%B9%89%E5%B1%9E%E6%80%A7%0A%E8%87%AA%E5%AE%9A%E4%B9%89%E5%B1%9E%E6%80%A7%E8%A7%84%E5%AE%9A%E4%BB%A5%EF%BC%88data-*%EF%BC%89%E5%BD%A2%E5%BC%8F%E5%87%BA%E7%8E%B0%0A%60%60%60html%0A%3Cdiv%20data-id%3D%22%E8%87%AA%E5%AE%9A%E4%B9%89%E5%B1%9E%E6%80%A7%E5%80%BC%22%3E%E8%87%AA%E5%AE%9A%E4%B9%89%E5%B1%9E%E6%80%A7%3C%2Fdiv%3E%0A%60%60%60%0A%23%23%23%23%23%2016%E3%80%81%E6%A0%87%E7%AD%BE%E5%B1%9E%E6%80%A7%E5%86%99%E5%AE%8C%E5%85%A8%0Aa%E8%BF%9E%E6%8E%A5%E7%9A%84title%EF%BC%88%E9%BC%A0%E6%A0%87%E7%A7%BB%E5%85%A5a%E6%98%BE%E7%A4%BA%E7%9A%84%E6%96%87%E5%AD%97%EF%BC%89%0Aimg%E6%A0%87%E7%AD%BE%E7%9A%84alt%EF%BC%88%E5%9B%BE%E7%89%87%E8%BF%9E%E6%8E%A5%E9%94%99%E8%AF%AF%E6%98%BE%E7%A4%BA%E7%9A%84%E6%96%87%E5%AD%97%EF%BC%89%0A%23%23%23%23%23%2017%E3%80%81%E5%B5%8C%E5%A5%97%0A%0A%E4%B8%A5%E6%A0%BC%E5%B5%8C%E5%A5%97%E7%BA%A6%E6%9D%9F%E5%9C%A8%E6%89%80%E6%9C%89%E7%9A%84%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8B%E9%83%BD%E4%B8%8D%E8%A2%AB%E5%85%81%E8%AE%B8%EF%BC%9B%E8%80%8C%E8%AF%AD%E4%B9%89%E5%B5%8C%E5%A5%97%E7%BA%A6%E6%9D%9F%EF%BC%8C%E6%B5%8F%E8%A7%88%E5%99%A8%E5%A4%A7%E5%A4%9A%E4%BC%9A%E5%AE%B9%E9%94%99%E5%A4%84%E7%90%86%EF%BC%8C%E7%94%9F%E6%88%90%E7%9A%84%E6%96%87%E6%A1%A3%E6%A0%91%E5%8F%AF%E8%83%BD%E7%9B%B8%E4%BA%92%E4%B8%8D%E5%A4%AA%E4%B8%80%E6%A0%B7%E3%80%82%0A**%E8%AF%AD%E4%B9%89%E5%B5%8C%E5%A5%97%E7%BA%A6%E6%9D%9F**%0A%0A*%20%3Cli%3E%20%E7%94%A8%E4%BA%8E%20%3Cul%3E%20%E6%88%96%20%3Col%3E%20%E4%B8%8B%EF%BC%9B%0A*%20%3Cdd%3E%2C%20%3Cdt%3E%20%E7%94%A8%E4%BA%8E%20%3Cdl%3E%20%E4%B8%8B%EF%BC%9B%0A*%20%3Cthead%3E%2C%20%3Ctbody%3E%2C%20%3Ctfoot%3E%2C%20%3Ctr%3E%2C%20%3Ctd%3E%20%E7%94%A8%E4%BA%8E%20%3Ctable%3E%20%E4%B8%8B%EF%BC%9B%0A%0A**%E4%B8%A5%E6%A0%BC%E5%B5%8C%E5%A5%97%E7%BA%A6%E6%9D%9F**%0A%0A*%20%3Ca%3E%E9%87%8C%E4%B8%8D%E5%8F%AF%E4%BB%A5%E5%B5%8C%E5%A5%97%E4%BA%A4%E4%BA%92%E5%BC%8F%E5%85%83%E7%B4%A0%3Ca%3E%E3%80%81%3Cbutton%3E%E3%80%81%3Cselect%3E%E7%AD%89%3B%0A*%20%3Cp%3E%E9%87%8C%E4%B8%8D%E5%8F%AF%E4%BB%A5%E5%B5%8C%E5%A5%97%E5%9D%97%E7%BA%A7%E5%85%83%E7%B4%A0%3Cdiv%3E%E3%80%81%3Ch1%3E~%3Ch6%3E%E3%80%81%3Cp%3E%E3%80%81%3Cul%3E%2F%3Col%3E%2F%3Cli%3E%E3%80%81%3Cdl%3E%2F%3Cdt%3E%2F%3Cdd%3E%E3%80%81%3Cform%3E%E7%AD%89%0A*%20%0A%23%23%23%23%23%2018%E3%80%81%E5%B8%83%E5%B0%94%E5%80%BC%E5%B1%9E%E6%80%A7%0A%0AHTML5%20%E8%A7%84%E8%8C%83%E4%B8%AD%20disabled%E3%80%81checked%E3%80%81selected%20%E7%AD%89%E5%B1%9E%E6%80%A7%E4%B8%8D%E7%94%A8%E8%AE%BE%E7%BD%AE%E5%80%BC%E3%80%82%0A%60%60%60html%0A%20%3Cinpupt%20tyle%3D%22text%22%20disabled%20%2F%3E%0A%20%0A%20%3Cinpupt%20tyle%3D%22checkbox%22%20checked%20%2F%3E%0A%20%0A%20%3Cselect%3E%0A%20%20%20%20%3Coption%20value%3D%221%22%20selected%3E%3C%2Foption%3E%0A%20%3C%2Fselect%3E%0A%60%60%60%0A%23%23%23%23%23%2019%E3%80%81HTML%20%E5%A4%B4%E9%83%A8%E6%80%BB%E7%BB%93%0A%60%60%60html%0A%0A%3C!DOCTYPE%20html%3E%20%3C!--%20%E4%BD%BF%E7%94%A8%20HTML5%20doctype%EF%BC%8C%E4%B8%8D%E5%8C%BA%E5%88%86%E5%A4%A7%E5%B0%8F%E5%86%99%20--%3E%3Chtml%20lang%3D%22zh-cmn-Hans%22%3E%20%3C!--%20%E6%9B%B4%E5%8A%A0%E6%A0%87%E5%87%86%E7%9A%84%20lang%20%E5%B1%9E%E6%80%A7%E5%86%99%E6%B3%95%20http%3A%2F%2Fzhi.hu%2FXyIa%20--%3E%3Chead%3E%0A%20%20%20%20%3C!--%20%E5%A3%B0%E6%98%8E%E6%96%87%E6%A1%A3%E4%BD%BF%E7%94%A8%E7%9A%84%E5%AD%97%E7%AC%A6%E7%BC%96%E7%A0%81%20--%3E%0A%20%20%20%20%3Cmeta%20charset%3D'utf-8'%3E%0A%20%20%20%20%3C!--%20%E4%BC%98%E5%85%88%E4%BD%BF%E7%94%A8%20IE%20%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%E5%92%8C%20Chrome%20--%3E%0A%20%20%20%20%3Cmeta%20http-equiv%3D%22X-UA-Compatible%22%20content%3D%22IE%3Dedge%2Cchrome%3D1%22%2F%3E%0A%20%20%20%20%3C!--%20%E9%A1%B5%E9%9D%A2%E6%8F%8F%E8%BF%B0%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22description%22%20content%3D%22%E4%B8%8D%E8%B6%85%E8%BF%87150%E4%B8%AA%E5%AD%97%E7%AC%A6%22%2F%3E%0A%20%20%20%20%3C!--%20%E9%A1%B5%E9%9D%A2%E5%85%B3%E9%94%AE%E8%AF%8D%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22keywords%22%20content%3D%22%22%2F%3E%0A%20%20%20%20%3C!--%20%E7%BD%91%E9%A1%B5%E4%BD%9C%E8%80%85%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22author%22%20content%3D%22name%2C%20email%40gmail.com%22%2F%3E%0A%20%20%20%20%3C!--%20%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E6%8A%93%E5%8F%96%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22robots%22%20content%3D%22index%2Cfollow%22%2F%3E%0A%20%20%20%20%3C!--%20%E4%B8%BA%E7%A7%BB%E5%8A%A8%E8%AE%BE%E5%A4%87%E6%B7%BB%E5%8A%A0%20viewport%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22viewport%22%20content%3D%22initial-scale%3D1%2C%20maximum-scale%3D3%2C%20minimum-scale%3D1%2C%20user-scalable%3Dno%22%3E%0A%20%20%20%20%3C!--%20%60width%3Ddevice-width%60%20%E4%BC%9A%E5%AF%BC%E8%87%B4%20iPhone%205%20%E6%B7%BB%E5%8A%A0%E5%88%B0%E4%B8%BB%E5%B1%8F%E5%90%8E%E4%BB%A5%20WebApp%20%E5%85%A8%E5%B1%8F%E6%A8%A1%E5%BC%8F%E6%89%93%E5%BC%80%E9%A1%B5%E9%9D%A2%E6%97%B6%E5%87%BA%E7%8E%B0%E9%BB%91%E8%BE%B9%20http%3A%2F%2Fbigc.at%2Fios-webapp-viewport-meta.orz%20--%3E%0A%20%0A%20%20%20%20%3C!--%20iOS%20%E8%AE%BE%E5%A4%87%20begin%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22apple-mobile-web-app-title%22%20content%3D%22%E6%A0%87%E9%A2%98%22%3E%0A%20%20%20%20%3C!--%20%E6%B7%BB%E5%8A%A0%E5%88%B0%E4%B8%BB%E5%B1%8F%E5%90%8E%E7%9A%84%E6%A0%87%E9%A2%98%EF%BC%88iOS%206%20%E6%96%B0%E5%A2%9E%EF%BC%89%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22apple-mobile-web-app-capable%22%20content%3D%22yes%22%2F%3E%0A%20%20%20%20%3C!--%20%E6%98%AF%E5%90%A6%E5%90%AF%E7%94%A8%20WebApp%20%E5%85%A8%E5%B1%8F%E6%A8%A1%E5%BC%8F%EF%BC%8C%E5%88%A0%E9%99%A4%E8%8B%B9%E6%9E%9C%E9%BB%98%E8%AE%A4%E7%9A%84%E5%B7%A5%E5%85%B7%E6%A0%8F%E5%92%8C%E8%8F%9C%E5%8D%95%E6%A0%8F%20--%3E%0A%20%0A%20%20%20%20%3Cmeta%20name%3D%22apple-itunes-app%22%20content%3D%22app-id%3DmyAppStoreID%2C%20affiliate-data%3DmyAffiliateData%2C%20app-argument%3DmyURL%22%3E%0A%20%20%20%20%3C!--%20%E6%B7%BB%E5%8A%A0%E6%99%BA%E8%83%BD%20App%20%E5%B9%BF%E5%91%8A%E6%9D%A1%20Smart%20App%20Banner%EF%BC%88iOS%206%2B%20Safari%EF%BC%89%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22apple-mobile-web-app-status-bar-style%22%20content%3D%22black%22%2F%3E%0A%20%20%20%20%3C!--%20%E8%AE%BE%E7%BD%AE%E8%8B%B9%E6%9E%9C%E5%B7%A5%E5%85%B7%E6%A0%8F%E9%A2%9C%E8%89%B2%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22format-detection%22%20content%3D%22telphone%3Dno%2C%20email%3Dno%22%2F%3E%0A%20%20%20%20%3C!--%20%E5%BF%BD%E7%95%A5%E9%A1%B5%E9%9D%A2%E4%B8%AD%E7%9A%84%E6%95%B0%E5%AD%97%E8%AF%86%E5%88%AB%E4%B8%BA%E7%94%B5%E8%AF%9D%EF%BC%8C%E5%BF%BD%E7%95%A5email%E8%AF%86%E5%88%AB%20--%3E%0A%20%20%20%20%3C!--%20%E5%90%AF%E7%94%A8360%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E6%9E%81%E9%80%9F%E6%A8%A1%E5%BC%8F(webkit)%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22renderer%22%20content%3D%22webkit%22%3E%0A%20%20%20%20%3C!--%20%E9%81%BF%E5%85%8DIE%E4%BD%BF%E7%94%A8%E5%85%BC%E5%AE%B9%E6%A8%A1%E5%BC%8F%20--%3E%0A%20%20%20%20%3Cmeta%20http-equiv%3D%22X-UA-Compatible%22%20content%3D%22IE%3Dedge%22%3E%0A%20%20%20%20%3C!--%20%E4%B8%8D%E8%AE%A9%E7%99%BE%E5%BA%A6%E8%BD%AC%E7%A0%81%20--%3E%0A%20%20%20%20%3Cmeta%20http-equiv%3D%22Cache-Control%22%20content%3D%22no-siteapp%22%20%2F%3E%0A%20%20%20%20%3C!--%20%E9%92%88%E5%AF%B9%E6%89%8B%E6%8C%81%E8%AE%BE%E5%A4%87%E4%BC%98%E5%8C%96%EF%BC%8C%E4%B8%BB%E8%A6%81%E6%98%AF%E9%92%88%E5%AF%B9%E4%B8%80%E4%BA%9B%E8%80%81%E7%9A%84%E4%B8%8D%E8%AF%86%E5%88%ABviewport%E7%9A%84%E6%B5%8F%E8%A7%88%E5%99%A8%EF%BC%8C%E6%AF%94%E5%A6%82%E9%BB%91%E8%8E%93%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22HandheldFriendly%22%20content%3D%22true%22%3E%0A%20%20%20%20%3C!--%20%E5%BE%AE%E8%BD%AF%E7%9A%84%E8%80%81%E5%BC%8F%E6%B5%8F%E8%A7%88%E5%99%A8%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22MobileOptimized%22%20content%3D%22320%22%3E%0A%20%20%20%20%3C!--%20uc%E5%BC%BA%E5%88%B6%E7%AB%96%E5%B1%8F%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22screen-orientation%22%20content%3D%22portrait%22%3E%0A%20%20%20%20%3C!--%20QQ%E5%BC%BA%E5%88%B6%E7%AB%96%E5%B1%8F%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22x5-orientation%22%20content%3D%22portrait%22%3E%0A%20%20%20%20%3C!--%20UC%E5%BC%BA%E5%88%B6%E5%85%A8%E5%B1%8F%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22full-screen%22%20content%3D%22yes%22%3E%0A%20%20%20%20%3C!--%20QQ%E5%BC%BA%E5%88%B6%E5%85%A8%E5%B1%8F%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22x5-fullscreen%22%20content%3D%22true%22%3E%0A%20%20%20%20%3C!--%20UC%E5%BA%94%E7%94%A8%E6%A8%A1%E5%BC%8F%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22browsermode%22%20content%3D%22application%22%3E%0A%20%20%20%20%3C!--%20QQ%E5%BA%94%E7%94%A8%E6%A8%A1%E5%BC%8F%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22x5-page-mode%22%20content%3D%22app%22%3E%0A%20%20%20%20%3C!--%20windows%20phone%20%E7%82%B9%E5%87%BB%E6%97%A0%E9%AB%98%E5%85%89%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22msapplication-tap-highlight%22%20content%3D%22no%22%3E%0A%20%20%20%20%3C!--%20iOS%20%E5%9B%BE%E6%A0%87%20begin%20--%3E%0A%20%20%20%20%3Clink%20rel%3D%22apple-touch-icon-precomposed%22%20href%3D%22%2Fapple-touch-icon-57x57-precomposed.png%22%2F%3E%0A%20%20%20%20%3C!--%20iPhone%20%E5%92%8C%20iTouch%EF%BC%8C%E9%BB%98%E8%AE%A4%2057x57%20%E5%83%8F%E7%B4%A0%EF%BC%8C%E5%BF%85%E9%A1%BB%E6%9C%89%20--%3E%0A%20%20%20%20%3Clink%20rel%3D%22apple-touch-icon-precomposed%22%20sizes%3D%22114x114%22%20href%3D%22%2Fapple-touch-icon-114x114-precomposed.png%22%2F%3E%0A%20%20%20%20%3C!--%20Retina%20iPhone%20%E5%92%8C%20Retina%20iTouch%EF%BC%8C114x114%20%E5%83%8F%E7%B4%A0%EF%BC%8C%E5%8F%AF%E4%BB%A5%E6%B2%A1%E6%9C%89%EF%BC%8C%E4%BD%86%E6%8E%A8%E8%8D%90%E6%9C%89%20--%3E%0A%20%20%20%20%3Clink%20rel%3D%22apple-touch-icon-precomposed%22%20sizes%3D%22144x144%22%20href%3D%22%2Fapple-touch-icon-144x144-precomposed.png%22%2F%3E%0A%20%20%20%20%3C!--%20Retina%20iPad%EF%BC%8C144x144%20%E5%83%8F%E7%B4%A0%EF%BC%8C%E5%8F%AF%E4%BB%A5%E6%B2%A1%E6%9C%89%EF%BC%8C%E4%BD%86%E6%8E%A8%E8%8D%90%E6%9C%89%20--%3E%0A%20%20%20%20%3C!--%20iOS%20%E5%9B%BE%E6%A0%87%20end%20--%3E%0A%20%0A%20%20%20%20%3C!--%20iOS%20%E5%90%AF%E5%8A%A8%E7%94%BB%E9%9D%A2%20begin%20--%3E%0A%20%20%20%20%3Clink%20rel%3D%22apple-touch-startup-image%22%20sizes%3D%22768x1004%22%20href%3D%22%2Fsplash-screen-768x1004.png%22%2F%3E%0A%20%20%20%20%3C!--%20iPad%20%E7%AB%96%E5%B1%8F%20768%20x%201004%EF%BC%88%E6%A0%87%E5%87%86%E5%88%86%E8%BE%A8%E7%8E%87%EF%BC%89%20--%3E%0A%20%20%20%20%3Clink%20rel%3D%22apple-touch-startup-image%22%20sizes%3D%221536x2008%22%20href%3D%22%2Fsplash-screen-1536x2008.png%22%2F%3E%0A%20%20%20%20%3C!--%20iPad%20%E7%AB%96%E5%B1%8F%201536x2008%EF%BC%88Retina%EF%BC%89%20--%3E%0A%20%20%20%20%3Clink%20rel%3D%22apple-touch-startup-image%22%20sizes%3D%221024x748%22%20href%3D%22%2FDefault-Portrait-1024x748.png%22%2F%3E%0A%20%20%20%20%3C!--%20iPad%20%E6%A8%AA%E5%B1%8F%201024x748%EF%BC%88%E6%A0%87%E5%87%86%E5%88%86%E8%BE%A8%E7%8E%87%EF%BC%89%20--%3E%0A%20%20%20%20%3Clink%20rel%3D%22apple-touch-startup-image%22%20sizes%3D%222048x1496%22%20href%3D%22%2Fsplash-screen-2048x1496.png%22%2F%3E%0A%20%20%20%20%3C!--%20iPad%20%E6%A8%AA%E5%B1%8F%202048x1496%EF%BC%88Retina%EF%BC%89%20--%3E%0A%20%0A%20%20%20%20%3Clink%20rel%3D%22apple-touch-startup-image%22%20href%3D%22%2Fsplash-screen-320x480.png%22%2F%3E%0A%20%20%20%20%3C!--%20iPhone%2FiPod%20Touch%20%E7%AB%96%E5%B1%8F%20320x480%20(%E6%A0%87%E5%87%86%E5%88%86%E8%BE%A8%E7%8E%87)%20--%3E%0A%20%20%20%20%3Clink%20rel%3D%22apple-touch-startup-image%22%20sizes%3D%22640x960%22%20href%3D%22%2Fsplash-screen-640x960.png%22%2F%3E%0A%20%20%20%20%3C!--%20iPhone%2FiPod%20Touch%20%E7%AB%96%E5%B1%8F%20640x960%20(Retina)%20--%3E%0A%20%20%20%20%3Clink%20rel%3D%22apple-touch-startup-image%22%20sizes%3D%22640x1136%22%20href%3D%22%2Fsplash-screen-640x1136.png%22%2F%3E%0A%20%20%20%20%3C!--%20iPhone%205%2FiPod%20Touch%205%20%E7%AB%96%E5%B1%8F%20640x1136%20(Retina)%20--%3E%0A%20%20%20%20%3C!--%20iOS%20%E5%90%AF%E5%8A%A8%E7%94%BB%E9%9D%A2%20end%20--%3E%0A%20%0A%20%20%20%20%3C!--%20iOS%20%E8%AE%BE%E5%A4%87%20end%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22msapplication-TileColor%22%20content%3D%22%23000%22%2F%3E%0A%20%20%20%20%3C!--%20Windows%208%20%E7%A3%81%E8%B4%B4%E9%A2%9C%E8%89%B2%20--%3E%0A%20%20%20%20%3Cmeta%20name%3D%22msapplication-TileImage%22%20content%3D%22icon.png%22%2F%3E%0A%20%20%20%20%3C!--%20Windows%208%20%E7%A3%81%E8%B4%B4%E5%9B%BE%E6%A0%87%20--%3E%0A%20%0A%20%20%20%20%3Clink%20rel%3D%22alternate%22%20type%3D%22application%2Frss%2Bxml%22%20title%3D%22RSS%22%20href%3D%22%2Frss.xml%22%2F%3E%0A%20%20%20%20%3C!--%20%E6%B7%BB%E5%8A%A0%20RSS%20%E8%AE%A2%E9%98%85%20--%3E%0A%20%20%20%20%3Clink%20rel%3D%22shortcut%20icon%22%20type%3D%22image%2Fico%22%20href%3D%22%2Ffavicon.ico%22%2F%3E%0A%20%20%20%20%3C!--%20%E6%B7%BB%E5%8A%A0%20favicon%20icon%20--%3E%0A%0A%20%20%20%20%3C!--%20sns%20%E7%A4%BE%E4%BA%A4%E6%A0%87%E7%AD%BE%20begin%20--%3E%0A%20%20%20%20%3C!--%20%E5%8F%82%E8%80%83%E5%BE%AE%E5%8D%9AAPI%20--%3E%0A%20%20%20%20%3Cmeta%20property%3D%22og%3Atype%22%20content%3D%22%E7%B1%BB%E5%9E%8B%22%20%2F%3E%0A%20%20%20%20%3Cmeta%20property%3D%22og%3Aurl%22%20content%3D%22URL%E5%9C%B0%E5%9D%80%22%20%2F%3E%0A%20%20%20%20%3Cmeta%20property%3D%22og%3Atitle%22%20content%3D%22%E6%A0%87%E9%A2%98%22%20%2F%3E%0A%20%20%20%20%3Cmeta%20property%3D%22og%3Aimage%22%20content%3D%22%E5%9B%BE%E7%89%87%22%20%2F%3E%0A%20%20%20%20%3Cmeta%20property%3D%22og%3Adescription%22%20content%3D%22%E6%8F%8F%E8%BF%B0%22%20%2F%3E%0A%20%20%20%20%3C!--%20sns%20%E7%A4%BE%E4%BA%A4%E6%A0%87%E7%AD%BE%20end%20--%3E%0A%20%0A%20%20%20%20%3Ctitle%3E%E6%A0%87%E9%A2%98%3C%2Ftitle%3E%3C%2Fhead%3E%0A%60%60%60%0A%23%23%20%E4%BA%8C%E3%80%81CSS%0A**%E6%B3%A8%E6%84%8F%EF%BC%9A**%0A*%20ID%E5%92%8Cclass%E5%91%BD%E5%90%8D%E8%B6%8A%E7%AE%80%E7%9F%AD%E8%B6%8A%E5%A5%BD%EF%BC%8C%E4%BE%BF%E4%BA%8E%E6%8F%90%E9%AB%98%E4%BB%A3%E7%A0%81%E6%95%88%E7%8E%87%0A*%20ID%E6%8E%A7%E5%88%B6%E8%A1%8C%E4%B8%BA%E5%B1%82%EF%BC%88javascript%EF%BC%89%0A*%20class%E6%8E%A7%E5%88%B6%E8%A1%A8%E7%A4%BA%E5%B1%82%EF%BC%88css%EF%BC%89%0A*%20%E9%81%BF%E5%85%8D%E9%80%89%E6%8B%A9%E5%99%A8%E5%B5%8C%E5%A5%97%E5%B1%82%E7%BA%A7%E8%BF%87%E5%A4%9A%EF%BC%8C%E5%B0%BD%E9%87%8F%E5%B0%91%E4%BA%8E%203%20%E7%BA%A7%0A*%20%E5%BB%BA%E8%AE%AE%E4%BD%BF%E7%94%A8%E5%8A%A8%E6%80%81css%EF%BC%8C%E5%A6%82Less%E3%80%81Sass%C2%A0%0A%23%23%23%23%23%201%E3%80%81%E6%A0%B7%E5%BC%8F%E6%96%87%E4%BB%B6%E5%91%BD%E5%90%8D%0A%7C%20%E5%90%8D%E7%A7%B0%20%7C%20%E6%96%87%E4%BB%B6%E5%90%8D%20%7C%0A%7C%20---%20%7C%20---%20%7C%0A%7C%20%E4%B8%BB%E8%A6%81%E7%9A%84%20%7C%20%20master.css%20%7C%0A%7C%20%E6%A8%A1%E5%9D%97%20%7C%20module.css%20%7C%0A%7C%20%E5%9F%BA%E6%9C%AC%E5%85%B1%E7%94%A8%20%7C%20base.css%20%7C%0A%7C%20%E5%B8%83%E5%B1%80%EF%BC%8C%E7%89%88%E9%9D%A2%20%7C%20layout.css%20%7C%0A%7C%20%E4%B8%BB%E9%A2%98%20%7C%20themes.css%20%7C%0A%7C%20%E4%B8%93%E6%A0%8F%20%7C%20columns.css%20%7C%0A%7C%20%E6%96%87%E5%AD%97%20%7C%20font.css%20%7C%0A%7C%20%E8%A1%A8%E5%8D%95%20%7C%20forms.css%20%7C%0A%7C%20%E8%A1%A5%E4%B8%81%20%7C%20mend.css%20%7C%0A%7C%20%E6%89%93%E5%8D%B0%20%7C%20print.css%20%7C%0A%0A%0A%23%23%23%23%23%202%E3%80%81%E6%96%87%E4%BB%B6%E9%A1%B6%E9%83%A8%E6%B3%A8%E9%87%8A%EF%BC%88%E6%8E%A8%E8%8D%90%E4%BD%BF%E7%94%A8%EF%BC%89%0A%60%60%60css%0A%2F**%0A**%0A%20%20%20%20%40description%3A%C2%A0%E4%B8%AD%E6%96%87%E8%AF%B4%E6%98%8E%0A%20%20%20%20%40author%3A%C2%A0%E4%BD%9C%E8%80%85%0A%20%20%20%20%40update%3A%C2%A02013-04-13%C2%A018%3A32%0A**%0A**%2F%0A%60%60%60%0A%23%23%23%23%23%203%E3%80%81%E6%A8%A1%E5%9D%97%E6%B3%A8%E9%87%8A%0A%60%60%60css%0A%2F*%C2%A0mischieff%202019-7-17%C2%A0*%2F%C2%A0%0A%60%60%60%0A%23%23%23%23%23%204%E3%80%81class%E7%B1%BB%E5%89%8D%E5%BB%BA%E8%AE%AE%E4%BD%BF%E7%94%A8%E5%85%AC%E5%8F%B8%E7%AE%80%E5%86%99%E6%88%96%E4%B8%AA%E4%BA%BA%E6%A0%87%E6%B3%A8%0A%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9%EF%BC%9A%0A*%20%E4%B8%80%E5%BE%8B%E5%B0%8F%E5%86%99%3B%0A*%20%E6%89%80%E7%94%A8%E7%B1%BB%E5%90%8D%E4%B8%80%E5%BE%8B%E7%94%A8%E8%8B%B1%E6%96%87%3B%0A*%20%E6%89%80%E7%94%A8%E7%B1%BB%E5%90%8D%E7%94%A8%E4%B8%80%E7%9C%8B%E5%B0%B1%E6%98%8E%E7%99%BD%E7%9A%84%E5%8D%95%E8%AF%8D.%0A%60%60%60css%0A.lz-class%7B%7D%20%20%20%20%20%20%20%20%20%20%2F*%20%20%E4%B9%90%E4%BD%90%E5%8A%A9%E7%AE%80%E5%86%99%20lz%20%20*%2F%0A.mis-class%7B%7D%20%20%20%20%20%20%20%20%2F*%20%20mischieff%E6%9C%AC%E4%BA%BA%E7%AE%80%E5%86%99%20%20*%2F%0A%60%60%60%0A%23%23%23%23%23%205%E3%80%81%E5%BB%BA%E8%AE%AE%E4%BD%BF%E7%94%A8%EF%BC%88-%EF%BC%89%E8%BF%9E%E6%8E%A5%E7%AC%A6%0A%60%60%60css%0A.lz-class%7B%7D%0A%60%60%60%0A%23%23%23%23%23%206%E3%80%81%E6%A0%B7%E5%BC%8F%E5%BB%BA%E8%AE%AE%EF%BC%88%E7%A4%BA%E4%BE%8B%EF%BC%89%0A%60%60%60css%0A.lz-login%7B%0A%20%20%20%20opsition%3Aabsolute%3B%0A%20%20%20%20top%3A0%3B%0A%20%20%20%20left%3A0%3B%0A%20%20%20%20border%3A%C2%A01px%20solid%C2%A0red%3B%0A%20%20%20%20font-size%3A%C2%A016px%3B%0A%7D%0A%2F*%0A%E6%A0%B7%E5%BC%8F%E6%B8%B2%E6%9F%93%E6%97%B6%EF%BC%8C%E7%94%B1%E4%BA%8E%E5%AE%9A%E4%BD%8D%EF%BC%88position%EF%BC%89%E5%8F%AF%E4%BB%A5%E4%BB%8E%E6%AD%A3%E5%B8%B8%E7%9A%84%E6%96%87%E6%A1%A3%E6%B5%81%E4%B8%AD%E7%A7%BB%E9%99%A4%E5%85%83%E7%B4%A0%EF%BC%8C%E5%B9%B6%E4%B8%94%E8%BF%98%E8%83%BD%E8%A6%86%E7%9B%96%E7%9B%92%E6%A8%A1%E5%9E%8B%EF%BC%88box%20model%EF%BC%89%E7%9B%B8%E5%85%B3%E7%9A%84%E6%A0%B7%E5%BC%8F%EF%BC%8C%E5%9B%A0%E6%AD%A4%E6%8E%92%E5%9C%A8%E9%A6%96%E4%BD%8D%E3%80%82%0A%E7%9B%92%E6%A8%A1%E5%9E%8B%E5%86%B3%E5%AE%9A%E4%BA%86%E7%BB%84%E4%BB%B6%E7%9A%84%E5%B0%BA%E5%AF%B8%E5%92%8C%E4%BD%8D%E7%BD%AE%EF%BC%8C%E5%9B%A0%E6%AD%A4%E6%8E%92%E5%9C%A8%E7%AC%AC%E4%BA%8C%E4%BD%8D%E3%80%82%E5%85%B6%E4%BB%96%E5%B1%9E%E6%80%A7%E5%8F%AA%E6%98%AF%E5%BD%B1%E5%93%8D%E7%BB%84%E4%BB%B6%E7%9A%84%E5%86%85%E9%83%A8%EF%BC%88inside%EF%BC%89%E6%88%96%E8%80%85%E6%98%AF%E4%B8%8D%E5%BD%B1%E5%93%8D%E5%89%8D%E4%B8%A4%E7%BB%84%E5%B1%9E%E6%80%A7%EF%BC%8C%E5%9B%A0%E6%AD%A4%E6%8E%92%E5%9C%A8%E5%90%8E%E9%9D%A2%E3%80%82%0A*%2F%0A%60%60%60%0A%23%23%23%23%23%207%E3%80%81%E5%BC%95%E5%8F%B7%E4%BD%BF%E7%94%A8%0A%0A%60%60%60css%0A%2F*url()%20%E3%80%81%E5%B1%9E%E6%80%A7%E9%80%89%E6%8B%A9%E7%AC%A6%E3%80%81%E5%B1%9E%E6%80%A7%E5%80%BC%E4%BD%BF%E7%94%A8%E5%8F%8C%E5%BC%95%E5%8F%B7%E3%80%82*%2F%0A.lz-login%7B%0A%20%20%20%20background%3A%C2%A0url(%22http%3A%2F%2Fss.bdimg.com%2Fstatic%2Fsuperlanding%2Fimg%2Flogo_top.png%22)%3B%0A%7D%0A%60%60%60%0A%0A%23%23%23%23%23%208%E3%80%81css%E5%B1%9E%E6%80%A7%E5%B0%BD%E9%87%8F%E4%BD%BF%E7%94%A8%E7%BC%A9%E5%86%99%0A%60%60%60css%0A.lz-login%7B%0A%20%20%20%20font%3A%2012px%2F1.5%20serif%3B%0A%20%20%20%20padding%3A%200%2010px%3B10%0A%7D%0A%60%60%60%0A%23%23%23%23%23%209%E3%80%81%E7%9C%81%E7%95%A50%E5%90%8E%E9%9D%A2%E7%9A%84%E5%8D%95%E4%BD%8D%0A%60%60%60css%0A.lz-login%7B%0A%20%20%20%20margin%3A%200%3B%0A%20%20%20%20padding%3A%200%3B%0A%7D%0A%60%60%60%0A%23%23%23%23%23%2010%E3%80%81%E5%AD%97%E4%BD%93%E8%A7%84%E5%88%99%0A%E4%B8%BA%E4%BA%86%E9%98%B2%E6%AD%A2%E6%96%87%E4%BB%B6%E5%90%88%E5%B9%B6%E5%8F%8A%E7%BC%96%E7%A0%81%E8%BD%AC%E6%8D%A2%E6%97%B6%E9%80%A0%E6%88%90%E9%97%AE%E9%A2%98%EF%BC%8C%E5%BB%BA%E8%AE%AE%E5%B0%86%E6%A0%B7%E5%BC%8F%E4%B8%AD%E6%96%87%E5%AD%97%E4%BD%93%E5%90%8D%E5%AD%97%E6%94%B9%E6%88%90%E5%AF%B9%E5%BA%94%E7%9A%84%E8%8B%B1%E6%96%87%E5%90%8D%E5%AD%97%EF%BC%8C%E5%A6%82%EF%BC%9A%0A%E9%BB%91%E4%BD%93(SimHei)%C2%A0%0A%E5%AE%8B%E4%BD%93(SimSun)%C2%A0%0A%E5%BE%AE%E8%BD%AF%E9%9B%85%E9%BB%91%C2%A0(Microsoft%C2%A0Yahei%EF%BC%8C%E5%87%A0%E4%B8%AA%E5%8D%95%E8%AF%8D%E4%B8%AD%E9%97%B4%E6%9C%89%E7%A9%BA%E6%A0%BC%E7%BB%84%E6%88%90%E7%9A%84%E5%BF%85%E9%A1%BB%E5%8A%A0%E5%BC%95%E5%8F%B7)%C2%A0%0A%23%23%23%23%23%2011%E3%80%81%E5%AD%97%E4%BD%93%E5%A4%A7%E5%B0%8F%0A%E7%9B%B4%E6%8E%A5%E4%BD%BF%E7%94%A8%22font%2B%E5%AD%97%E4%BD%93%E5%A4%A7%E5%B0%8F%22%E4%BD%9C%E4%B8%BA%E5%90%8D%E7%A7%B0%EF%BC%8C%E5%A6%82%E4%B8%8B%E6%89%80%E7%A4%BA%EF%BC%9A%0A%60%60%60css%0A.font12px%20%7B%0A%20%20%20%20font-size%3A%2012px%3B%20%0A%7D%0A.font9pt%20%7B%0A%20%20%20%20font-size%3A%209pt%3B%20%0A%7D%0A%60%60%60%0A%23%23%23%23%23%2012%E3%80%81%E6%B5%8F%E8%A7%88%E5%99%A8%E5%B1%9E%E6%80%A7%E6%94%AF%E6%8C%81%E5%BA%A6%0A%E4%B8%BA%E4%BA%86%E9%A1%B5%E9%9D%A2%E6%80%A7%E8%83%BD%E8%80%83%E8%99%91%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8D%E6%94%AF%E6%8C%81CSS3%E7%9B%B8%E5%85%B3%E5%B1%9E%E6%80%A7%E7%9A%84%EF%BC%8C%E5%88%99%E8%AF%A5%E6%B5%8F%E8%A7%88%E5%99%A8%E7%9A%84%E6%9F%90%E4%BA%9B%E7%89%B9%E6%95%88%E5%B0%86%E4%B8%8D%E5%86%8D%E6%94%AF%E6%8C%81%EF%BC%8C%E5%B1%9E%E6%80%A7%E7%9A%84%E6%94%AF%E6%8C%81%E6%83%85%E5%86%B5%E5%A6%82%E4%B8%8B%E8%A1%A8%E6%89%80%E7%A4%BA%EF%BC%88Y%E4%B8%BA%E6%94%AF%E6%8C%81%EF%BC%8CN%E4%B8%BA%E4%B8%8D%E6%94%AF%E6%8C%81%EF%BC%89%0A%7C%20%E6%B5%8F%E8%A7%88%E5%99%A8%20%7C%20%E5%9C%86%E8%A7%92%20%7C%20%E9%98%B4%E5%BD%B1%20%7C%20%E5%8A%A8%E7%94%BB%20%7C%20%E6%96%87%E5%AD%97%E9%98%B4%E5%BD%B1%20%7C%20%E9%80%8F%E6%98%8E%20%7C%20%E8%83%8C%E6%99%AF%E6%B8%90%E5%8F%98%20%7C%20%E7%A9%BA%E9%97%B4%E5%8F%98%E6%8D%A2%20%7C%0A%7C%20--------%20%20%20%7C%20-----%3A%20%20%7C%20%3A----%3A%20%20%7C%20%3A----%3A%20%20%7C%20%3A----%3A%20%20%7C%20%3A----%3A%20%20%7C%20%3A----%3A%20%20%7C%20%3A----%3A%20%20%7C%0A%7C%20Chrome%205%2B%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%0A%7C%20Firefox%204%2B%20%20%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%0A%7C%20Safari%205%2B%20%20%20%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%0A%7C%20Opera%20%20%20%20%20%20%20%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20N%20%7C%20Y%20%7C%0A%7C%20Ie%209%2B%20%20%20%20%20%20%20%20%20%7C%20Y%20%7C%20Y%20%7C%20N%20%7C%20N%20%7C%20Y%20%7C%20N%20%7C%20Y%20%7C%0A%7C%20Chrome%205-%20%20%7C%20N%20%7C%20N%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%0A%7C%20Safari%205-%20%20%20%20%20%7C%20N%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20Y%20%7C%20N%20%7C%20Y%20%7C%0A%7C%20Ie%208%20%20%20%20%20%20%20%20%20%20%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%0A%7C%20Ie%207%20%20%20%20%20%20%20%20%20%20%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%0A%7C%20Ie%206%20%20%20%20%20%20%20%20%20%20%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%20N%20%7C%0A%23%23%23%23%23%2013%E3%80%81%E6%B5%8F%E8%A7%88%E5%99%A8%E5%AD%97%E4%BD%93%0Afont-family%C2%A0%E5%B1%9E%E6%80%A7%E4%B8%AD%E7%9A%84%E5%AD%97%E4%BD%93%E6%97%8F%E5%90%8D%E7%A7%B0%E5%BA%94%E4%BD%BF%E7%94%A8%E5%AD%97%E4%BD%93%E7%9A%84%E8%8B%B1%E6%96%87%C2%A0Family%20Name%EF%BC%8C%E5%85%B6%E4%B8%AD%E5%A6%82%E6%9C%89%E7%A9%BA%E6%A0%BC%EF%BC%8C%E9%A1%BB%E6%94%BE%E7%BD%AE%E5%9C%A8%E5%BC%95%E5%8F%B7%E4%B8%AD%EF%BC%9B%E5%B8%B8%E8%A7%81%E7%9A%84%E5%AD%97%E4%BD%93%E6%97%8F%E5%90%8D%E7%A7%B0%E5%A6%82%E4%B8%8B%0A**%E8%A5%BF%E6%96%87%E5%AD%97%E4%BD%93%E5%9C%A8%E5%89%8D%EF%BC%8C%E4%B8%AD%E6%96%87%E5%AD%97%E4%BD%93%E5%9C%A8%E5%90%8E**%0A%60%60%60css%0Abody%7B%0A%20%20%20%20font-family%3A%20Arial%2C%20%22Microsoft%20YaHei%22%2C%20sans-serif%3B%0A%7D%0A%60%60%60%0A%7C%20%E5%AD%97%E4%BD%93%20%7C%20%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%20%7C%20Family%20Name%20%7C%0A%7C%20--------%20%20%20%7C%20-----%3A%20%20%7C%20%3A----%3A%20%20%7C%0A%7C%20%E5%AE%8B%E4%BD%93%20(%E4%B8%AD%E6%98%93%E5%AE%8B%E4%BD%93)%20%7C%20Windows%20%7C%20SimSun%20%7C%0A%7C%20%E9%BB%91%E4%BD%93%20(%E4%B8%AD%E6%98%93%E9%BB%91%E4%BD%93)%20%7C%20Windows%20%7C%20SimHei%20%7C%0A%7C%20%E5%BE%AE%E8%BD%AF%E9%9B%85%E9%BB%91%20%7C%20Windows%20%7C%20Microsoft%20YaHei%20%7C%0A%7C%20%E5%BE%AE%E8%BD%AF%E6%AD%A3%E9%BB%91%20%7C%20Windows%20%7C%20Microsoft%20JhengHei%20%7C%0A%7C%20%E5%8D%8E%E6%96%87%E9%BB%91%E4%BD%93%20%7C%20Mac%2FiOS%20%7C%20STHeiti%20%7C%0A%7C%20%E5%86%AC%E9%9D%92%E9%BB%91%E4%BD%93%20%7C%20Mac%2FiOS%20%7C%20Hiragino%20Sans%20GB%20%7C%0A%23%23%23%23%23%2014%E3%80%81%20%E5%91%BD%E5%90%8D%E8%A7%84%E8%8C%83%0A%20%60%60%60css%0A%E5%AE%B9%E5%99%A8%3A%C2%A0container%C2%A0%0A%E9%A1%B5%E5%A4%B4%EF%BC%9Aheader%C2%A0%0A%E5%86%85%E5%AE%B9%EF%BC%9Acontent%2Fcontainer%0A%E9%A1%B5%E9%9D%A2%E4%B8%BB%E4%BD%93%EF%BC%9Amain%C2%A0%0A%E9%A1%B5%E5%B0%BE%EF%BC%9Afooter%C2%A0%0A%E5%AF%BC%E8%88%AA%EF%BC%9Anav%C2%A0%0A%E4%BE%A7%E6%A0%8F%EF%BC%9Asidebar%C2%A0%0A%E6%A0%8F%E7%9B%AE%EF%BC%9Acolumn%C2%A0%0A%E9%A1%B5%E9%9D%A2%E5%A4%96%E5%9B%B4%EF%BC%9Awrapper%C2%A0%0A%E5%B7%A6%E5%8F%B3%E4%B8%AD%EF%BC%9Aleft%C2%A0right%C2%A0center%0A%E5%AF%BC%E8%88%AA%EF%BC%9Anav%C2%A0%0A%E4%B8%BB%E5%AF%BC%E8%88%AA%EF%BC%9Amainbav%C2%A0%0A%E5%AD%90%E5%AF%BC%E8%88%AA%EF%BC%9Asubnav%C2%A0%0A%E9%A1%B6%E5%AF%BC%E8%88%AA%EF%BC%9Atopnav%C2%A0%0A%E8%BE%B9%E5%AF%BC%E8%88%AA%EF%BC%9Asidebar%C2%A0%0A%E5%B7%A6%E5%AF%BC%E8%88%AA%EF%BC%9Aleftsidebar%C2%A0%0A%E5%8F%B3%E5%AF%BC%E8%88%AA%EF%BC%9Arightsidebar%C2%A0%0A%E8%8F%9C%E5%8D%95%EF%BC%9Amenu%C2%A0%0A%E5%AD%90%E8%8F%9C%E5%8D%95%EF%BC%9Asubmenu%C2%A0%0A%E6%A0%87%E9%A2%98%3A%C2%A0title%0A%E6%91%98%E8%A6%81%3A%C2%A0summary%0A%E6%A0%87%E5%BF%97%EF%BC%9Alogo%C2%A0%0A%E5%B9%BF%E5%91%8A%EF%BC%9Abanner%C2%A0%0A%E7%99%BB%E9%99%86%EF%BC%9Alogin%C2%A0%0A%E7%99%BB%E5%BD%95%E6%9D%A1%EF%BC%9Aloginbar%C2%A0%0A%E6%B3%A8%E5%86%8C%EF%BC%9Aregsiter%C2%A0%0A%E6%90%9C%E7%B4%A2%EF%BC%9Asearch%C2%A0%0A%E5%8A%9F%E8%83%BD%E5%8C%BA%EF%BC%9Ashop%C2%A0%0A%E6%A0%87%E9%A2%98%EF%BC%9Atitle%C2%A0%0A%E5%8A%A0%E5%85%A5%EF%BC%9Ajoinus%C2%A0%0A%E7%8A%B6%E6%80%81%EF%BC%9Astatus%C2%A0%0A%E6%8C%89%E9%92%AE%EF%BC%9Abtn%0A%E6%BB%9A%E5%8A%A8%EF%BC%9Ascroll%C2%A0%0A%E6%A0%87%E7%AD%BE%E9%A1%B5%EF%BC%9Atab%C2%A0%0A%E6%96%87%E7%AB%A0%E5%88%97%E8%A1%A8%EF%BC%9Alist%0A%E6%8F%90%E7%A4%BA%E4%BF%A1%E6%81%AF%EF%BC%9Amsg%C2%A0%0A%E5%BD%93%E5%89%8D%E7%9A%84%3A%C2%A0current%C2%A0%0A%E5%B0%8F%E6%8A%80%E5%B7%A7%EF%BC%9Atips%C2%A0%0A%E5%9B%BE%E6%A0%87%3A%C2%A0icon%C2%A0%0A%E6%B3%A8%E9%87%8A%EF%BC%9Anote%C2%A0%0A%E6%8C%87%E5%8D%97%EF%BC%9Aguild%C2%A0%0A%E6%9C%8D%E5%8A%A1%EF%BC%9Aservice%C2%A0%0A%E7%83%AD%E7%82%B9%EF%BC%9Ahot%C2%A0%0A%E6%96%B0%E9%97%BB%EF%BC%9Anews%C2%A0%0A%E4%B8%8B%E8%BD%BD%EF%BC%9Adownload%C2%A0%0A%E6%8A%95%E7%A5%A8%EF%BC%9Avote%C2%A0%0A%E5%90%88%E4%BD%9C%E4%BC%99%E4%BC%B4%EF%BC%9Apartner%C2%A0%0A%E5%8F%8B%E6%83%85%E9%93%BE%E6%8E%A5%EF%BC%9Alink%C2%A0%0A%E7%89%88%E6%9D%83%EF%BC%9Acopyright%C2%A0%0A%60%60%60%0A%0A%23%23%20%E4%B8%89%E3%80%81JavaScript%0A%23%23%23%23%23%201%E3%80%81%E6%B3%A8%E9%87%8A%0A%60%60%60javascript%0A%2F**%20%0A*%20%40param%20%7BGrid%7D%20grid%20%E9%9C%80%E8%A6%81%E5%90%88%E5%B9%B6%E7%9A%84Grid%0A*%20%40autho%20mischieff%20%202015%2F07%2F21%20%0A**%2F%0A%60%60%60%0A%0A%0A%7C%20%E6%B3%A8%E9%87%8A%E5%90%8D%20%7C%20%E5%90%AB%E4%B9%89%20%7C%20%E8%AF%AD%E6%B3%95%20%7C%20%E7%A4%BA%E4%BE%8B%20%7C%0A%7C%20--------%20%20%20%7C%20-----%20%20%7C%20----%20%20%7C%20----%20%7C%0A%7C%40param%20%7C%20%E6%8F%8F%E8%BF%B0%E5%8F%82%E6%95%B0%E7%9A%84%E4%BF%A1%E6%81%AF%20%7C%20%40param%20%E5%8F%82%E6%95%B0%E5%90%8D%20%7B%E5%8F%82%E6%95%B0%E7%B1%BB%E5%9E%8B%7D%20%E6%8F%8F%E8%BF%B0%E4%BF%A1%E6%81%AF%20%7C%20%40param%20name%20%7BString%7D%20%E4%BC%A0%E5%85%A5%E5%90%8D%E7%A7%B0%20%7C%0A%7C%40return%20%7C%20%E6%8F%8F%E8%BF%B0%E8%BF%94%E5%9B%9E%E5%80%BC%E7%9A%84%E4%BF%A1%E6%81%AF%20%7C%20%40return%20%7B%E8%BF%94%E5%9B%9E%E7%B1%BB%E5%9E%8B%7D%20%E6%8F%8F%E8%BF%B0%E4%BF%A1%E6%81%AF%7C%20%40return%20%7BBoolean%7D%20true%3A%E5%8F%AF%E6%89%A7%E8%A1%8C%3Bfalse%3A%E4%B8%8D%E5%8F%AF%E6%89%A7%E8%A1%8C%7C%0A%7C%40autho%20%7C%20%E6%8F%8F%E8%BF%B0%E6%AD%A4%E5%87%BD%E6%95%B0%E4%BD%9C%E8%80%85%E7%9A%84%E4%BF%A1%E6%81%AF%20%7C%20%40author%20%E4%BD%9C%E8%80%85%E4%BF%A1%E6%81%AF%20%5B%E9%99%84%E5%B1%9E%E4%BF%A1%E6%81%AF%EF%BC%9A%E5%A6%82%E9%82%AE%E7%AE%B1%E3%80%81%E6%97%A5%E6%9C%9F%5D%20%7C%20%40author%20%E5%BC%A0%E4%B8%89%202015%2F07%2F21%20%7C%0A%7C%40version%20%7C%20%E6%8F%8F%E8%BF%B0%E6%AD%A4%E5%87%BD%E6%95%B0%E7%9A%84%E7%89%88%E6%9C%AC%E5%8F%B7%20%7C%20%40version%20XX.XX.XX%20%7C%20%40version%201.0.3%7C%0A%0A%23%23%23%23%23%201%E3%80%81var%20%2F%20let%20%2F%20const%0A%E5%BB%BA%E8%AE%AE%E4%B8%8D%E5%86%8D%E4%BD%BF%E7%94%A8%20var%EF%BC%8C%E8%80%8C%E4%BD%BF%E7%94%A8%20let%20%2F%20const%EF%BC%8C%E4%BC%98%E5%85%88%E4%BD%BF%E7%94%A8%20const%E3%80%82%E4%BB%BB%E4%BD%95%E4%B8%80%E4%B8%AA%E5%8F%98%E9%87%8F%E7%9A%84%E4%BD%BF%E7%94%A8%E9%83%BD%E8%A6%81%E6%8F%90%E5%89%8D%E7%94%B3%E6%98%8E%EF%BC%8C%E9%99%A4%E4%BA%86%20function%20%E5%AE%9A%E4%B9%89%E7%9A%84%E5%87%BD%E6%95%B0%E5%8F%AF%E4%BB%A5%E9%9A%8F%E4%BE%BF%E6%94%BE%E5%9C%A8%E4%BB%BB%E4%BD%95%E4%BD%8D%E7%BD%AE%E3%80%82%0A%0A%0A%23%23%23%23%23%202%E3%80%81%E7%A7%81%E6%9C%89%E5%B1%9E%E6%80%A7%E3%80%81%E5%8F%98%E9%87%8F%E5%92%8C%E6%96%B9%E6%B3%95%E4%BB%A5%E4%B8%8B%E5%88%92%E7%BA%BF%20_%20%E5%BC%80%E5%A4%B4%0A%60%60%60javascript%0Avar%20_myStyle%20%3D%20%7B%7D%0A%60%60%60%0A%23%23%23%23%23%203%E3%80%81%E5%B8%B8%E9%87%8F%2C%20%E4%BD%BF%E7%94%A8%E5%85%A8%E9%83%A8%E5%AD%97%E6%AF%8D%E5%A4%A7%E5%86%99%EF%BC%8C%E5%8D%95%E8%AF%8D%E9%97%B4%E4%B8%8B%E5%88%92%E7%BA%BF%E5%88%86%E9%9A%94%E7%9A%84%E5%91%BD%E5%90%8D%E6%96%B9%E5%BC%8F%0A%60%60%60javascript%0Avar%20my_Style%20%3D%20%7B%7D%0A%60%60%60%0A%23%23%23%23%23%204%E3%80%81%E5%87%BD%E6%95%B0%2F%E5%87%BD%E6%95%B0%E7%9A%84%E5%8F%82%E6%95%B0%20%E4%BD%BF%E7%94%A8%20Camel(%E9%A9%BC%E5%B3%B0)%20%E5%91%BD%E5%90%8D%E6%B3%95%0A%60%60%60javascript%0Afunction%20stringFormat(theBells)%7B%7D%0A%60%60%60%0A%23%23%23%23%23%205%E3%80%81%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0%E9%A6%96%E5%AD%97%E6%AF%8D%E5%A4%A7%E5%86%99%EF%BC%88StringFormat%EF%BC%89%0A%60%60%60javascript%0Afunction%20Student(name)%20%7B%0A%20%20%20%20this.name%20%3D%20name%3B%0A%7D%0Avar%20st%20%3D%20new%20Student('tom')%3B%0A%60%60%60%0A%0A%23%23%23%23%23%206%E3%80%81%E5%87%BD%E6%95%B0%E5%91%BD%E5%90%8D%E5%89%8D%E7%BC%80%E4%B8%BA%E5%8A%A8%E8%AF%8D%0A%7C%20%E5%8A%A8%E8%AF%8D%20%7C%20%E5%90%AB%E4%B9%89%20%7C%20%E8%BF%94%E5%9B%9E%E5%80%BC%20%7C%0A%7C%20--------%20%20%20%7C%20-----%20%20%7C%20----%20%20%7C%0A%7C%20can%20%7C%20%E5%88%A4%E6%96%AD%E6%98%AF%E5%90%A6%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%9F%90%E4%B8%AA%E5%8A%A8%E4%BD%9C%20(%20%E6%9D%83%E9%99%90%20)%20%7C%20%E5%87%BD%E6%95%B0%E8%BF%94%E5%9B%9E%E4%B8%80%E4%B8%AA%E5%B8%83%E5%B0%94%E5%80%BCtrue%EF%BC%9A%E5%8F%AF%E6%89%A7%E8%A1%8C%EF%BC%9Bfalse%EF%BC%9A%E4%B8%8D%E5%8F%AF%E6%89%A7%E8%A1%8C%20%7C%0A%7C%20has%20%7C%20%E5%88%A4%E6%96%AD%E6%98%AF%E5%90%A6%E5%90%AB%E6%9C%89%E6%9F%90%E4%B8%AA%E5%80%BC%20%7C%20%E5%87%BD%E6%95%B0%E8%BF%94%E5%9B%9E%E4%B8%80%E4%B8%AA%E5%B8%83%E5%B0%94%E5%80%BC%E3%80%82true%EF%BC%9A%E5%90%AB%E6%9C%89%E6%AD%A4%E5%80%BC%EF%BC%9Bfalse%EF%BC%9A%E4%B8%8D%E5%90%AB%E6%9C%89%E6%AD%A4%E5%80%BC%20%7C%0A%7C%20is%20%7C%20%E5%88%A4%E6%96%AD%E6%98%AF%E5%90%A6%E4%B8%BA%E6%9F%90%E4%B8%AA%E5%80%BC%20%7C%20%E5%87%BD%E6%95%B0%E8%BF%94%E5%9B%9E%E4%B8%80%E4%B8%AA%E5%B8%83%E5%B0%94%E5%80%BC%E3%80%82true%EF%BC%9A%E4%B8%BA%E6%9F%90%E4%B8%AA%E5%80%BC%EF%BC%9Bfalse%EF%BC%9A%E4%B8%8D%E4%B8%BA%E6%9F%90%E4%B8%AA%E5%80%BC%20%7C%0A%7C%20get%20%7C%20%E8%8E%B7%E5%8F%96%E6%9F%90%E4%B8%AA%E5%80%BC%20%7C%20%E5%87%BD%E6%95%B0%E8%BF%94%E5%9B%9E%E4%B8%80%E4%B8%AA%E9%9D%9E%E5%B8%83%E5%B0%94%E5%80%BC%20%7C%0A%7C%20set%20%7C%20%E8%AE%BE%E7%BD%AE%E6%9F%90%E4%B8%AA%E5%80%BC%20%7C%20%E6%97%A0%E8%BF%94%E5%9B%9E%E5%80%BC%E3%80%81%E8%BF%94%E5%9B%9E%E6%98%AF%E5%90%A6%E8%AE%BE%E7%BD%AE%E6%88%90%E5%8A%9F%E6%88%96%E8%80%85%E8%BF%94%E5%9B%9E%E9%93%BE%E5%BC%8F%E5%AF%B9%E8%B1%A1%20%7C%0A%60%60%60javascript%0A%2F%2F%E6%98%AF%E5%90%A6%E4%B8%BA%E5%8F%AF%E8%AF%BB%0Afunction%20canRead()%7B%20%20%20%20%0A%20%20%20%20return%20true%3B%0A%7D%0A%60%60%60%0A%23%23%23%23%23%207%E3%80%81True%20%E5%92%8C%20False%20%E5%B8%83%E5%B0%94%E8%A1%A8%E8%BE%BE%E5%BC%8F%0A%0A%E4%B8%8B%E9%9D%A2%E7%9A%84%E5%B8%83%E5%B0%94%E8%A1%A8%E8%BE%BE%E5%BC%8F%E9%83%BD%E8%BF%94%E5%9B%9E%20false%3A%0A*%20null%0A*%20undefined%0A*%20%E2%80%98%E2%80%99%E7%A9%BA%E5%AD%97%E7%AC%A6%E4%B8%B2%0A*%20%200%20%E6%95%B0%E5%AD%970%0A%0A%E4%BD%86%E5%B0%8F%E5%BF%83%E4%B8%8B%E9%9D%A2%E7%9A%84%2C%20%E5%8F%AF%E9%83%BD%E8%BF%94%E5%9B%9E%20true%3A%0A*%20%E2%80%980%E2%80%99%E5%AD%97%E7%AC%A6%E4%B8%B20%0A*%20%5B%5D%20%E7%A9%BA%E6%95%B0%E7%BB%84%0A*%20%7B%7D%20%E7%A9%BA%E5%AF%B9%E8%B1%A1%0A%23%23%23%23%23%208%E3%80%81%E5%BC%95%E5%8F%B7%0A%E5%BB%BA%E8%AE%AE%E4%B8%8D%E5%86%8D%E4%BD%BF%E7%94%A8%E5%8F%8C%E5%BC%95%E5%8F%B7%EF%BC%8C%E9%9D%99%E6%80%81%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%BD%BF%E7%94%A8%E5%8D%95%E5%BC%95%E5%8F%B7%EF%BC%8C%E5%8A%A8%E6%80%81%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%BD%BF%E7%94%A8%E5%8F%8D%E5%BC%95%E5%8F%B7%E8%A1%94%E6%8E%A5%E3%80%82%0A%60%60%60javscript%0A%2F%2F%20%E5%8F%8D%E4%BE%8B%0Aconst%20foo%20%3D%20%22%E5%90%8E%E9%99%A4%22%0Aconst%20bar%20%3D%20foo%20%2B%20%22%EF%BC%8C%E5%89%8D%E7%AB%AF%E5%B7%A5%E7%A8%8B%E5%B8%88%22%0A%0A%2F%2F%20%E6%AD%A3%E4%BE%8B%0Aconst%20foo%20%3D%20'%E5%90%8E%E9%99%A4'%0Aconst%20bar%20%3D%20%60%24%7Bfoo%7D%EF%BC%8C%E5%89%8D%E7%AB%AF%E5%B7%A5%E7%A8%8B%E5%B8%88%60%0A%60%60%60%0A%0A%23%23%23%23%23%209%E3%80%81%E5%87%BD%E6%95%B0%0A%E5%8C%BF%E5%90%8D%E5%87%BD%E6%95%B0%E7%BB%9F%E4%B8%80%E4%BD%BF%E7%94%A8%E7%AE%AD%E5%A4%B4%E5%87%BD%E6%95%B0%EF%BC%8C%E5%A4%9A%E4%B8%AA%E5%8F%82%E6%95%B0%2F%E8%BF%94%E5%9B%9E%E5%80%BC%E6%97%B6%E4%BC%98%E5%85%88%E4%BD%BF%E7%94%A8%E5%AF%B9%E8%B1%A1%E7%9A%84%E7%BB%93%E6%9E%84%E8%B5%8B%E5%80%BC%E3%80%82%0A%60%60%60javascript%0A%2F%2F%20%E5%8F%8D%E4%BE%8B%0Afunction%20getPersonInfo%20(name%2C%20sex)%20%7B%0A%20%20%20%20return%20%5Bname%2C%20gender%5D%0A%7D%0A%0A%2F%2F%20%E6%AD%A3%E4%BE%8B%0Afunction%20getPersonInfo%20(%7Bname%2C%20sex%7D)%20%7B%0A%20%20%20%20return%20%7Bname%2C%20gender%7D%0A%7D%0A%60%60%60%0A**%60%E5%87%BD%E6%95%B0%E5%90%8D%E7%BB%9F%E4%B8%80%E4%BD%BF%E7%94%A8%E9%A9%BC%E5%B3%B0%E5%91%BD%E5%90%8D%EF%BC%8C%E4%BB%A5%E5%A4%A7%E5%86%99%E5%AD%97%E6%AF%8D%E5%BC%80%E5%A4%B4%E7%94%B3%E6%98%8E%E7%9A%84%E9%83%BD%E6%98%AF%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0%EF%BC%8C%E4%BD%BF%E7%94%A8%E5%B0%8F%E5%86%99%E5%AD%97%E6%AF%8D%E5%BC%80%E5%A4%B4%E7%9A%84%E9%83%BD%E6%98%AF%E6%99%AE%E9%80%9A%E5%87%BD%E6%95%B0%EF%BC%8C%E4%B9%9F%E4%B8%8D%E8%AF%A5%E4%BD%BF%E7%94%A8%20new%20%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%8E%BB%E6%93%8D%E4%BD%9C%E6%99%AE%E9%80%9A%E5%87%BD%E6%95%B0%E3%80%82%60**%0A%0A%23%23%23%23%23%2010%E3%80%81%E5%AF%B9%E8%B1%A1%0A%0A%E5%BB%BA%E8%AE%AE%E4%BD%BF%E7%94%A8%E6%89%A9%E5%B1%95%E8%BF%90%E7%AE%97%E7%AC%A6%EF%BC%88...foo%EF%BC%89%E6%8B%B7%E8%B4%9D%E5%AF%B9%E8%B1%A1%E8%80%8C%E4%B8%8D%E6%98%AF%C2%A0Object.assign(target%2C%20...sources)%E3%80%82%0A%60%60%60javascript%0A%2F%2F%20%E9%94%99%E8%AF%AF%0Aconst%20foo%20%3D%20%7Ba%3A%200%2C%20b%3A%201%7D%0Aconst%20bar%20%3D%20Object.assign(foo%2C%20%7Bc%3A%202%7D)%0A%0A%2F%2F%20%E6%AD%A3%E4%BE%8B%0Aconst%20foo%20%3D%20%7Ba%3A%200%2C%20b%3A%201%7D%0Aconst%20bar%20%3D%20%7B...foo%2C%20c%3A%202%7D%0A%60%60%60%0A%23%23%23%23%23%2011%E3%80%81%E6%A8%A1%E5%9D%97%0A%E7%BB%9F%E4%B8%80%E4%BD%BF%E7%94%A8%20import%20%2F%20export%20%E7%9A%84%E6%96%B9%E5%BC%8F%E7%AE%A1%E7%90%86%E9%A1%B9%E7%9B%AE%E7%9A%84%E6%A8%A1%E5%9D%97%0A%60%60%60javascrip%0A%2F%2F%20lib.js%0Aexport%20default%20%7B%7D%0A%0A%2F%2F%20app.js%0Aimport%20app%20from%20'.%2Flib'%0A%60%60%60%0A%0A**%60import%20%E7%BB%9F%E4%B8%80%E6%94%BE%E5%9C%A8%E6%96%87%E4%BB%B6%E9%A1%B6%E9%83%A8%E3%80%82%60**%0A%23%23%23%23%23%2012%E3%80%81%E4%B8%89%E5%85%83%E6%93%8D%E4%BD%9C%E7%AC%A6%0A%0A%E6%93%8D%E4%BD%9C%E7%AC%A6%E5%A7%8B%E7%BB%88%E5%86%99%E5%9C%A8%E5%89%8D%E4%B8%80%E8%A1%8C%2C%20%E4%BB%A5%E5%85%8D%E5%88%86%E5%8F%B7%E7%9A%84%E9%9A%90%E5%BC%8F%E6%8F%92%E5%85%A5%E4%BA%A7%E7%94%9F%E9%A2%84%E6%83%B3%E4%B8%8D%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98%E3%80%82%0A%23%23%23%23%23%2013%E3%80%81%E5%BE%AA%E7%8E%AF%0A%0A%60for%20(var%20i%20%3D%200%3B%20i%20%3C%20arr.length%3B%20i%2B%2B)%20%7B%7D%20%60%E8%BF%99%E6%A0%B7%E7%9A%84%E6%96%B9%E5%BC%8F%E9%81%8D%E5%8E%86%60%E4%B8%8D%E6%98%AF%E5%BE%88%E5%A5%BD%60%EF%BC%8C%E5%B0%A4%E5%85%B6%E5%BD%93%20arr%20%E6%98%AF%20Dom%20%E5%AF%B9%E8%B1%A1%E7%9A%84%E6%97%B6%E5%80%99%EF%BC%8C%E8%BF%99%E6%A0%B7%E5%B0%B1%E4%BC%9A%E4%B8%80%E7%9B%B4%E5%9C%A8%E8%AE%BF%E9%97%AE%20Dom%20%E5%B1%82%EF%BC%8C%E8%AE%BF%E9%97%AE%20Dom%20%E5%B1%82%E7%9A%84%E4%BB%A3%E4%BB%B7%E6%98%AF%E5%BE%88%E5%A4%A7%E7%9A%84%E3%80%82%0A%0A%60for%20(var%20i%20%3D%200%2C%20j%3Darr.length%3B%20i%20%3C%20j%3B%20i%2B%2B)%20%7B%7D%20%60%E8%BF%99%E6%A0%B7%E7%9A%84%E6%96%B9%E5%BC%8F%E5%8E%BB%E7%94%A8%E5%BE%AA%E7%8E%AF%E6%98%AF%60%E6%AF%94%E8%BE%83%E5%A5%BD%60%E7%9A%84%EF%BC%8C%E5%8F%AA%E4%BC%9A%E8%AE%BF%E9%97%AE%E4%B8%80%E6%AC%A1%20Dom%20%E5%B1%82%EF%BC%88%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%20Dom%20%E8%8A%82%E7%82%B9%E4%BC%9A%E5%8A%A8%E6%80%81%E6%9B%B4%E6%96%B0%E7%9A%84%E5%9C%BA%E6%99%AF%EF%BC%89%E3%80%82%0A%23%23%20%E5%9B%9B%E3%80%81es6%0A%23%23%23%23%23%201%E3%80%81%E8%A7%A3%E6%9E%84%E8%B5%8B%E5%80%BC%0A**%EF%BC%881%EF%BC%89%E6%95%B0%E7%BB%84%E7%9A%84%E8%A7%A3%E6%9E%84%E8%B5%8B%E5%80%BC**%0A%60%60%60javascript%0A%2F%2F%E6%9C%80%E5%9F%BA%E6%9C%AC%E7%9A%84%E5%86%99%E6%B3%95%0A%7B%0A%20%20let%20a%2Cb%0A%20%20%5Ba%2Cb%5D%20%3D%20%5B1%2C2%5D%0A%20%20console.log(a%2Cb)%20%2F%2F%201%2C2%0A%7D%0A%0A%2F%2F%20%E5%8A%A0%E9%BB%98%E8%AE%A4%E5%80%BC%0A%7B%0A%20%20let%20a%2Cb%0A%20%20%5Ba%2Cb%2Cc%3D3%5D%20%3D%20%5B1%2C2%5D%0A%20%20console.log(a%2Cb%2Cc)%20%2F%2F%201%2C2%2C3%0A%7D%0A%0A%2F%2F%20%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF%2F%2F%201.%20%E5%8F%98%E9%87%8F%E7%9A%84%E5%80%BC%E4%BA%A4%E6%8D%A2%0A%7B%0A%20%20let%20a%20%3D%201%0A%20%20let%20b%20%3D%202%0A%20%20%5Ba%2Cb%5D%20%3D%20%5Bb%2Ca%5D%0A%20%20console.log(a%2Cb)%20%2F%2F2%2C%201%0A%7D%0A%0A%2F%2F%202.%20%E4%BB%8E%E5%87%BD%E6%95%B0%E7%9A%84%E8%BF%94%E5%9B%9E%E5%80%BC%E5%8F%96%E5%80%BC%0A%7B%0A%20%20function%20f()%7B%0A%20%20return%20%5B1%2C2%5D%0A%20%20%7D%0A%20%20let%20a%2Cb%0A%20%20%5Ba%2Cb%5D%20%3D%20f()%0A%20%20console.log(a%2Cb)%20%2F%2F%201%2C%202%0A%7D%0A%0A%2F%2F%203.%20%E4%BB%8E%E5%87%BD%E6%95%B0%E7%9A%84%E8%BF%94%E5%9B%9E%E5%80%BC%E4%B8%AD%E5%8F%96%E5%80%BC%EF%BC%8C%E5%B9%B6%E4%B8%94%E5%BC%84%E6%88%90%E6%88%91%E4%BB%AC%E6%83%B3%E8%A6%81%E7%9A%84%E6%A0%BC%E5%BC%8F%0A%7B%0A%20%20function%20f()%7B%0A%20%20return%20%5B1%2C2%2C3%2C4%2C5%5D%0A%20%20%7D%0A%20%20let%20a%2Cb%2Cc%0A%20%20%5Ba%2C%2C%2Cb%5D%3Df()%0A%20%20console.log(a%2Cb)%20%2F%2F1%2C4%0A%7D%0A%0A%2F%2F%204.%20%E5%90%8C%E6%A0%B7%EF%BC%8C%E5%8F%96%E6%88%91%E4%BB%AC%E6%83%B3%E8%A6%81%E7%9A%84%0A%7B%0A%20%20function%20f()%7B%0A%20%20return%20%5B1%2C2%2C3%2C4%2C5%5D%0A%20%20%7D%0A%20%20let%20a%2Cb%2Cc%0A%20%20%5Ba%2C...b%5D%3Df()%0A%20%20console.log(a%2Cb)%20%2F%2F1%2C%20%5B2%2C3%2C4%2C5%5D%0A%7D%0A%0A%2F%2F%205.%20%E5%8F%96%E6%88%91%E4%BB%AC%E6%83%B3%E8%A6%81%E7%9A%84%EF%BC%8C%E6%84%8F%E6%80%9D%E5%B0%B1%E6%98%AF%E4%B9%90%E6%84%8F%E8%A6%81%E5%95%A5%E5%B0%B1%E6%8B%BF%E5%95%A5%0A%7B%0A%20%20let%20a%2Cb%2Crest%0A%20%20%5Ba%2Cb%2C..rest%5D%20%3D%20%5B1%2C2%2C3%2C4%2C5%5D%0A%20%20console.log(a%2Cb%2Crest)%20%2F%2F%201%2C%202%2C%20%20%5B3%2C4%2C5%5D%0A%7D%0A%60%60%60%0A**%EF%BC%882%EF%BC%89%E5%AF%B9%E8%B1%A1%E7%9A%84%E8%A7%A3%E6%9E%84%E8%B5%8B%E5%80%BC**%0A%60%60%60javascript%0A%2F%2F%20%E5%9F%BA%E6%9C%AC%E5%86%99%E6%B3%95%0A%7B%0A%20%20let%20a%2Cb%0A%20%20%7B%7Ba%2Cb%7D%20%3D%20%7Ba%3A1%2Cb%3A2%7D%7D%0A%20%20console.log(a%2Cb)%20%2F%2F%201%2C%202%0A%7D%0A%0A%7B%0A%20%20let%20o%20%3D%20%7Ba%3A1%2Cq%3Atrue%7D%0A%20%20let%20%7Ba%2Cp%7D%20%3D%20o%0A%20%20console.log(a%2Cq)%20%2F%2F1%2Ctrue%0A%7D%0A%0A%2F%2F%20%E5%8A%A0%E9%BB%98%E8%AE%A4%E5%80%BC%0A%7B%0A%20%20let%20%20%7Ba%3D10%2Cb%3D1%7D%20%3D%20%7Ba%3D1%7D%0A%20%20console.log(a%2Cb)%20%2F%2F1%2C1%20%2C%E9%BB%98%E8%AE%A4%E5%80%BC%E4%BC%9A%E8%A2%AB%E5%90%8E%E9%9D%A2%E7%9A%84%E5%80%BC%E6%9B%BF%E6%8D%A2%0A%7D%0A%0A%2F%2F%20%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF%2F%2F%20%E6%A8%A1%E6%8B%9F%E5%90%8E%E7%AB%AF%E6%8E%A5%E5%8F%A3%EF%BC%8C%E5%8F%96%E6%88%91%E4%BB%AC%E6%83%B3%E8%A6%81%E7%9A%84%E5%80%BC%0A%7B%0A%20%20let%20data%20%3D%20%7B%0A%20%20title%3A%20'a'%2C%0A%20%20test%3A%5B%7B%0A%20%20title%3A%20'b'%0A%20%20desc%3A%20'desc'%0A%20%20%7D%5D%0A%20%20%7D%0A%20%20%20let%20%7Btitle%3AesTitle%2Ctest%3A%5B%7Btitle%3AcTitle%7D%5D%7D%20%3D%20data%0A%20%20%20console.log(esTitle%2CcTitle)%20%2F%2F%20a%20%2Cb%0A%7D%0A%60%60%60%0A%23%23%23%23%23%202%E3%80%81%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E6%89%A9%E5%B1%95%0A**%EF%BC%881%EF%BC%89%E9%81%8D%E5%8E%86%E6%8E%A5%E5%8F%A3**%0A%60%60%60javascript%0A%2F%2F%20es5%0Alet%20str%3D'%5Cu%7B20bb7%7Dabc'%0Afor(let%20i%20%3D0%3Bi%3Cstr.length%3Bi%2B%2B)%7B%0A%20%20%20%20console.log(str%5Bi%5D)%20%2F%2F%20%E4%B9%B1%E7%A0%81%20%E4%B9%B1%E7%A0%81%20a%20b%20c%0A%7D%0A%2F%2F%20es6%0Afor(let%20code%20of%20str)%7B%0A%20%20%20%20console.log(code)%20%2F%2F%20%F0%A0%AE%B7%20%20a%20b%20c%20for%20of%20%E5%8F%AF%E4%BB%A5%E6%AD%A3%E7%A1%AE%E8%AF%86%E5%88%AB%0A%7D%0A%60%60%60%0A**%EF%BC%882%EF%BC%89%E6%96%B0%E7%9A%84%E5%B8%B8%E7%94%A8%E6%96%B9%E6%B3%95**%0A%60%60%60javascript%0A%2F%2F%20includes%20%20startsWith%20endsWith%0A%7B%0A%20%20%20%20let%20str%20%3D%20'string'%0A%20%20%20%20console.log(str.includes('r'))%20%2F%2F%20true%0A%20%20%20%20console.log(str.startsWith('s'))%20%2F%2F%20true%0A%20%20%20%20console.log(str.endsWith('g'))%20%2F%2F%20true%0A%7D%0A%0A%2F%2F%E5%A4%8D%E5%88%B6%20repeat%0A%7B%0A%20%20%20%20let%20str%20%3D%20'abc'%0A%20%20%20%20console.log(str.repeat(2))%20%2F%2F%20abcabc%0A%7D%0A%0A%2F%2F%E5%BF%BD%E7%95%A5%E6%8D%A2%E8%A1%8C%0A%7B%0A%20%20%20%20console.log(String.raw%60Hi%5Cn%24%7B1%2B2%7D%60)%20Hi%5Cn3%0A%20%20%20%20console.log(S%60Hi%5Cn%24%7B1%2B2%7D%60)%20%2F%2F%20%E6%8D%A2%E8%A1%8C%0A%7D%0A%0A%2F%2F%20%20padStart%20padEnd%20%E8%BF%99%E4%B8%A4%E4%B8%AA%E8%BF%98%E5%A4%84%E4%BA%8E%E8%8D%89%E6%A1%88%E9%98%B6%E6%AE%B5%2C%E8%A6%81%E4%BD%BF%E7%94%A8babel-polyfill%E8%BF%9B%E8%A1%8C%E7%BC%96%E8%AF%91%0A%7B%0A%20%20%20%20console.log('1'%2CpadStart(2.'0'))%20%2F%2F01%20%E7%AC%AC%E4%B8%80%E4%B8%AA%E5%8F%82%E6%95%B0%E6%98%AF%E9%95%BF%E5%BA%A6%EF%BC%8C%E9%95%BF%E5%BA%A6%E4%B8%8D%E5%A4%9F%E8%A1%A50%0A%20%20%20%20console.log('1'%2CpadEnd(2.'0'))%20%2F%2F10%20%0A%7D%0A%60%60%60%0A**%EF%BC%883%EF%BC%89%E6%A8%A1%E6%9D%BF%E5%AD%97%E7%AC%A6%E4%B8%B2**%0A%60%60%60javascript%0A%7B%0A%20%20let%20name%3D%22dou%22%3B%0A%20%20let%20info%3D%22hello%22%3B%0A%20%20let%20m%3D%60i%20am%20%24%7Bname%7D%2C%24%7Binfo%7D%60%3B%0A%20%20console.log(m)%3B%20%2F%2Fi%20am%20dou%2C%20hello%0A%7D%0A%60%60%60%0A%23%23%23%23%23%203%E3%80%81%E6%95%B0%E5%80%BC%E7%9A%84%E6%89%A9%E5%B1%95%0A**%EF%BC%881%EF%BC%89%E6%96%B0%E5%A2%9E%E6%96%B9%E6%B3%95%2C%E5%B8%B8%E7%94%A8%E7%9A%84**%0A%60%60%60javascript%0A%7B%0A%20%20%20%20%2F%2F%20%E6%A3%80%E6%9F%A5%E6%98%AF%E4%B8%8D%E6%98%AF%E6%9C%89%E9%99%90%E7%9A%84%20(-2%5E53%2C2%5E53)%0A%20%20%20%20console.log(Number.isFinite(1))%20%2F%2F%20true%0A%20%20%20%20console.log(Number.isFinite(NaN))%20%2F%2F%20false%0A%20%20%20%20console.log(Number.isFinite(1%2F0))%20%2F%2F%20false%0A%20%20%20%0A%20%20%20%20%20%2F%2F%20%E6%A3%80%E6%9F%A5%E6%98%AF%E4%B8%8D%E6%98%AFNaN%0A%20%20%20%20console.log(Number.isNaN(NaN))%20%2F%2F%20true%0A%20%20%20%20console.log(Number.isNaN(0))%20%2F%2F%20false%0A%7D%0A%0A%7B%0A%20%20%20%20%2F%2F%20%E6%A3%80%E6%9F%A5%E6%98%AF%E4%B8%8D%E6%98%AF%E6%95%B4%E6%95%B0%0A%20%20%20%20console.log(Number.isInteger(1))%20%2F%2Ftrue%0A%20%20%20%20%2F%2F%20%E8%BF%99%E8%A6%81%E6%B3%A8%E6%84%8F%0A%20%20%20%20console.log(Number.isInteger(1.0))%20%2F%2Ftrue%0A%20%20%20%20%0A%20%20%20%20console.log(Number.isInteger(1.1))%20%2F%2Ffalse%0A%20%20%20%20console.log(Number.isInteger('1'))%20%2F%2Ffalse%0A%7D%0A%0A%0A%7B%0A%20%20%20%20%2F%2F%20%E6%9C%80%E5%A4%A7%E5%92%8C%E6%9C%80%E5%B0%8F%E5%AE%89%E5%85%A8%E6%95%B0%E5%80%BC%0A%20%20%20%20console.log(Number.MAX_SAFE_INTEGER)%0A%20%20%20%20console.log(Number.MIN_SAFE_INTEGER)%0A%20%20%20%20%0A%20%20%20%20console.log(Number.isSafeIntger(1))%20%2F%2Ftrue%0A%7D%0A%0A%7B%20%20%20%20%0A%20%20%20%20%2F%2F%20%E5%8F%96%E6%95%B4%0A%20%20%20%20console.log(Math.trunc(1.1))%20%2F%2F1%0A%20%20%20%20console.log(Math.trunc(1.9))%20%2F%2F1%0A%20%20%20%20%2F%2F%E5%88%A4%E6%96%AD%E4%B8%80%E4%B8%AA%E6%95%B0%E5%88%B0%E5%BA%95%E6%98%AF%E6%AD%A3%E6%95%B0%E3%80%81%E8%B4%9F%E6%95%B0%E3%80%81%E8%BF%98%E6%98%AF%E9%9B%B6%0A%20%20%20%20console.log(Math.sign(-2))%20%2F%2F-1%0A%20%20%20%20console.log(Math.sign(0))%20%2F%2F%200%0A%20%20%20%20console.log(Math.sign(2))%20%2F%2F%201%0A%20%20%20%20console.log(Math.sign('2'))%20%2F%2F%201%0A%20%20%20%20console.log(Math.sign('aa'))%20%2F%2F%20NaN%0A%7D%0A%60%60%60%0A**%EF%BC%882%EF%BC%89%E6%96%B0%E5%A2%9E%E6%96%B9%E6%B3%95%2C%E6%96%B0%E7%89%B9%E6%80%A7**%0A*%20Array.from%0A*%20Array.of%0A*%20copyeWithin%0A*%20find%2FfindIndex%0A*%20fill%0A*%20entries%5Ckeys%5Cvalues%0A*%20includes%0A%60%60%60javascript%0A%7B%0A%20%20%20%20%2F%2F%20Array.of%20%E5%B0%86%E4%B8%80%E7%BB%84%E5%80%BC%EF%BC%8C%E8%BD%AC%E6%8D%A2%E4%B8%BA%E6%95%B0%E7%BB%84%0A%20%20%20%20let%20arr%20%3D%20Array.of(1%2C2%2C3%2C4)%0A%20%20%20%20console.log(arr)%20%5B1%2C2%2C3%2C4%5D%0A%20%20%20%20%0A%20%20%20%20let%20emptyArr%20%3D%20Array.of()%0A%20%20%20%20console.log(emptyArr)%20%2F%2F%20%5B%5D%0A%20%20%20%20%0A%20%20%20%20%2F%2FArray.from%20%E6%8A%8A%E7%B1%BB%E6%95%B0%E7%BB%84%E8%BD%AC%E4%B8%BA%E6%95%B0%E7%BB%84%0A%20%20%20%20console.log(Array.from(%5B1%2C2%2C3%5D%2Cfunction(item)%7B%0A%20%20%20%20%20%20%20%20return%20item*2%20%2F%2F%202%2C4%2C6%0A%20%20%20%20%7D))%0A%20%20%20%20%0A%20%20%20%20%2F%2Ffill%E5%A1%AB%E5%85%85%20%E7%AC%AC%E4%BA%8C%E4%B8%AA%E5%92%8C%E7%AC%AC%E4%B8%89%E4%B8%AA%E5%8F%82%E6%95%B0%EF%BC%8C%E7%94%A8%E4%BA%8E%E6%8C%87%E5%AE%9A%E5%A1%AB%E5%85%85%E7%9A%84%E8%B5%B7%E5%A7%8B%E4%BD%8D%E7%BD%AE%E5%92%8C%E7%BB%93%E6%9D%9F%E4%BD%8D%E7%BD%AE%0A%20%20%20%20console.log(%5B1%2C'a'%2Cundefined%5D.fill(1))%20%2F%2F%5B1%2C1%2C1%5D%0A%20%20%20%20console.log(%5Ba%2Cb%2Cc%5D%2Cfill(7%2C1%2C3))%20%2F%2F%20%5Ba%2C7%2C7%5D%0A%7D%0A%0A%2F%2F%20key%20values%20entries%0A%7B%0A%20%20%20%20for(let%20i%20of%20%5B1%2C2%2C3%5D.key())%7B%0A%20%20%20%20%20%20%20%20console.log(i)%20%2F%2F0%2C1%2C2%0A%20%20%20%20%7D%0A%20%20%20%20%2F%2F%E5%85%BC%E5%AE%B9%0A%20%20%20%20for(let%20v%20of%20%5B1%2C2%2C3%5D.values())%7B%0A%20%20%20%20%20%20%20%20console.log(v)%20%2F%2F1%2C2%2C3%0A%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20for(let%20%5Bi%2Cv%5D%20of%20%5B1%2C2%2C3%5D.entries())%7B%0A%20%20%20%20%20%20%20%20console.log(i%2Cv)%20%2F%2F%200%201%20%20%20%201%202%20%20%20%202%203%0A%20%20%20%20%7D%0A%7D%0A%0A%2F%2FcopyWithin%E5%B0%86%E6%8C%87%E5%AE%9A%E4%BD%8D%E7%BD%AE%E7%9A%84%E6%88%90%E5%91%98%E5%A4%8D%E5%88%B6%E5%88%B0%E5%85%B6%E4%BB%96%E4%BD%8D%E7%BD%AE%2C%E5%B9%B6%E8%BF%94%E5%9B%9E%E6%96%B0%E6%95%B0%E7%BB%84%0A%7B%0A%20%20%20%20console.log(%5B1%2C2%2C3%2C4%2C5%5D.copyWithin(0%2C3%2C4))%20%2F%2F%5B4%2C2%2C3%2C4%2C5%5D%0A%7D%0A%0A%2F%2Ffind%20findIndex%20%E6%89%BE%E5%87%BA%E7%AC%AC%E4%B8%80%E4%B8%AA%E7%AC%A6%E5%90%88%E6%9D%A1%E4%BB%B6%E7%9A%84%E6%95%B0%E7%BB%84%E6%88%90%E5%91%98%0A%7B%0A%20%20%20%20console.log(%5B1%2C2%2C3%2C4%2C5%2C6%5D.find(function(item)%7B%0A%20%20%20%20%20%20%20%20return%20item%3E3%0A%20%20%20%20%7D))%20%2F%2F%204%20%20%E5%8F%AA%E6%89%BE%E4%B8%80%E6%AC%A1%0A%20%20%20%20%0A%20%20%20%20console.log(%5B1%2C2%2C3%2C4%2C5%2C6%5D.findIndex(function(item)%7B%0A%20%20%20%20%20%20%20%20return%20item%3E3%0A%20%20%20%20%7D))%20%2F%2F%203%20%20%E5%8F%AA%E6%89%BE%E4%B8%80%E6%AC%A1%0A%7D%0A%0A%2F%2F%20includes%20%E6%89%BE%E6%95%B0%E7%BB%84%E9%87%8C%E7%9A%84%E5%80%BC%2C%E5%8F%AF%E4%BB%A5%E6%89%BENaN%0A%7B%0A%20%20%20%20console.log(%5B1%2C2%2CNaN%5D.includes(1))%20%2F%2Ftrue%0A%20%20%20%20console.log(%5B1%2C2%2CNaN%5D.includes(NaN))%20%2F%2Ftrue%0A%7D%0A%60%60%60%0A%23%23%23%23%23%204%E3%80%81%E5%87%BD%E6%95%B0%E7%9A%84%E6%89%A9%E5%B1%95%0A%0A*%20%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0%E7%9A%84%E9%BB%98%E8%AE%A4%E5%80%BC%0A*%20rest%E5%8F%82%E6%95%B0%0A*%20%E7%AE%AD%E5%A4%B4%E5%87%BD%E6%95%B0%0A*%20%E5%B0%BE%E8%B0%83%E7%94%A8%0A%60%60%60javascript%0A%2F%2F%20%E5%87%BD%E6%95%B0%E5%8F%82%E6%95%B0%E7%9A%84%E9%BB%98%E8%AE%A4%E5%80%BC%0A%7B%0A%20%20function%20test(x%2C%20y%20%3D%20'world')%7B%0A%20%20%20%20console.log('%E9%BB%98%E8%AE%A4%E5%80%BC'%2Cx%2Cy)%3B%0A%20%20%7D%0A%20%20test('hello')%3B%20%2F%2F%20hello%20world%0A%20%20%2F%2F%20%E5%A6%82%E6%9E%9C%E4%BC%A0%E7%9A%84%E5%8F%82%E6%95%B0%E9%BB%98%E8%AE%A4%E5%80%BC%E4%BC%9A%E8%A2%AB%E6%9B%BF%E6%8D%A2%0A%20%20test('hello'%2C'dou')%3B%20%2F%2Fhello%20dou%0A%20%20%0A%20%20%2F%2F%20%E6%B3%A8%E6%84%8F%E8%BF%99%E4%BC%9A%E5%B8%A6%E6%9D%A5%E4%B8%80%E4%B8%AA%E4%BD%9C%E7%94%A8%E5%9F%9F%E7%9A%84%E9%97%AE%E9%A2%98%0A%20%20var%20x%20%3D%201%3B%0A%20%20function%20f(x%2C%20y%20%3D%20x)%20%7B%0A%20%20%20%20console.log(y)%3B%0A%20%20%7D%0A%20%20f(2)%20%2F%2F%202%0A%20%20%0A%20%20%2F%2F%20%E8%AE%BE%E7%BD%AE%E9%BB%98%E8%AE%A4%E5%80%BC%EF%BC%8C%E4%BC%9A%E5%BD%A2%E6%88%90%E4%B8%80%E4%B8%AA%E5%8D%95%E7%8B%AC%E7%9A%84%E4%BD%9C%E7%94%A8%E5%9F%9F%E7%AD%89%E5%88%B0%E5%88%9D%E5%A7%8B%E5%8C%96%E7%BB%93%E6%9D%9F%EF%BC%8C%E8%BF%99%E4%B8%AA%E4%BD%9C%E7%94%A8%E5%9F%9F%E5%B0%B1%E4%BC%9A%E6%B6%88%E5%A4%B1%20%0A%20%20let%20x%20%3D%201%3B%0A%20%20function%20f(y%20%3D%20x)%20%7B%0A%20%20%20%20let%20x%20%3D%202%3B%0A%20%20%20%20console.log(y)%3B%0A%20%20%7D%20%20%0A%20%20f()%20%2F%2F%201%0A%7D%0A%0A%2F%2F%20rest%E5%8F%82%E6%95%B0%0A%7B%0A%20%20function%20test3(...arg)%7B%0A%20%20%20%20for(let%20v%20of%20arg)%7B%0A%20%20%20%20%20%20console.log('rest'%2Cv)%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20test3(1%2C2%2C3%2C4%2C'a')%20%2F%2F1%2C2%2C3%2C4%2Ca%0A%20%20%2F%2F%20rest%E5%8F%82%E6%95%B0%E4%BC%9A%E5%B0%86%E4%BC%A0%E5%85%A5%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BD%AC%E5%8C%96%E4%B8%BA%E6%95%B0%E7%BB%84%0A%7D%0A%0A%2F%2F%E6%89%A9%E5%B1%95%E8%BF%90%E7%AE%97%E7%AC%A6%20%E7%9B%B8%E5%BD%93%E4%BA%8Erest%E7%9A%84%E9%80%86%E8%BF%90%E7%AE%97%3D%3E%E6%8A%8A%E6%95%B0%E7%BB%84%E5%B1%95%E5%BC%80%0A%7B%0A%20%20console.log(...%5B1%2C2%2C4%5D)%3B%20%2F%2F%201%2C2%2C4%0A%20%20console.log('a'%2C...%5B1%2C2%2C4%5D)%3B%20%2F%2F%20a%2C1%2C2%2C4%0A%7D%0A%0A%2F%2F%20%E7%AE%AD%E5%A4%B4%E5%87%BD%E6%95%B0%20%E4%B8%8D%E5%9C%A8%E8%AF%B4%E4%BA%86%0A%7B%0A%20%20let%20arrow%20%3D%20v%20%3D%3E%20v*2%3B%0A%20%20console.log(arrow(1))%20%2F%2F%202%20%0A%7D%0A%0A%2F%2F%20%E5%B0%BE%E8%B0%83%E7%94%A8%2C%E4%BC%98%E5%8C%96%E7%94%A8%2C%E4%B8%8D%E5%86%8D%E5%B1%95%E5%BC%80%2C%E5%9F%BA%E6%9C%AC%E5%BD%A2%E5%BC%8F%E5%A6%82%E4%B8%8B%0A%7B%0A%20%20function%20tail(x)%7B%0A%20%20%20%20console.log('tail'%2Cx)%3B%0A%20%20%7D%0A%20%20function%20fx(x)%7B%0A%20%20%20%20return%20tail(x)%0A%20%20%7D%0A%20%20fx(123)%20%2F%2F%20tail%20123%0A%7D%0A%60%60%60%0A%23%23%23%23%23%205%E3%80%81%E5%AF%B9%E8%B1%A1%E7%9A%84%E6%89%A9%E5%B1%95%0A%0A*%20%E7%AE%80%E6%B4%81%E8%A1%A8%E7%A4%BA%E6%B3%95%0A*%20%E5%B1%9E%E6%80%A7%E8%A1%A8%E8%BE%BE%E5%BC%8F%0A*%20%E6%96%B0%E5%A2%9EAPI%0A*%20%E6%89%A9%E5%B1%95%E8%BF%90%E7%AE%97%E7%AC%A6%0A%60%60%60javascript%0A%7B%0A%20%20%2F%2F%20%E7%AE%80%E6%B4%81%E8%A1%A8%E7%A4%BA%E6%B3%95%0A%20%20let%20o%3D1%3B%0A%20%20let%20k%3D2%3B%0A%20%20let%20es5%3D%7B%0A%20%20%20%20o%3Ao%2C%0A%20%20%20%20k%3Ak%0A%20%20%7D%3B%0A%20%20let%20es6%3D%7B%0A%20%20%20%20o%2C%0A%20%20%20%20k%0A%20%20%7D%3B%0A%20%20console.log(es5%2Ces6)%3B%20%2F%2F%20%E6%98%AF%E4%B8%80%E6%A0%B7%E7%9A%84%E7%BB%93%E6%9E%9C%0A%0A%20%20let%20es5_method%3D%7B%0A%20%20%20%20hello%3Afunction()%7B%0A%20%20%20%20%20%20console.log('hello')%3B%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%20%20let%20es6_method%3D%7B%0A%20%20%20%20hello()%7B%0A%20%20%20%20%20%20console.log('hello')%3B%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%20%20console.log(es5_method.hello()%2Ces6_method.hello())%3B%20%2F%2F%20%E4%B9%9F%E6%98%AF%E4%B8%80%E6%A0%B7%E7%9A%84%2C%E5%9C%A8vue%E4%B8%AD%E6%88%91%E4%BB%AC%E5%B0%B1%E6%98%AF%E7%94%A8%E7%9A%84%E7%AE%80%E6%B4%81%E8%A1%A8%E7%A4%BA%0A%7D%0A%0A%7B%0A%20%20%2F%2F%20%E5%B1%9E%E6%80%A7%E8%A1%A8%E8%BE%BE%E5%BC%8F%0A%20%20let%20a%3D'b'%3B%0A%20%20let%20es5_obj%3D%7B%0A%20%20%20%20a%3A'c'%2C%0A%20%20%20%20b%3A'c'%0A%20%20%7D%3B%0A%0A%20%20let%20es6_obj%3D%7B%0A%20%20%20%20%5Ba%5D%3A'c'%0A%20%20%7D%0A%20%20console.log(es5_obj%2Ces6_obj)%20%2F%2F%20es5%E7%9A%84%E5%B0%B1%E4%B8%8D%E8%AF%B4%E4%BA%86%20es6%E8%BE%93%E5%87%BA%20%7Bb%3Ac%7D%20%0A%7D%0A%0A%7B%0A%20%20%2F%2F%20is%0A%20%20console.log(Object.is('abc'%2C'abc')%2C'abc'%3D%3D%3D'abc')%20%2F%2F%20true%20true%0A%20%20console.log(Object.is(%5B%5D%2C%5B%5D)%2C%5B%5D%3D%3D%3D%5B%5D)%3B%20%2F%2F%20false%20false%0A%20%20%2F%2F%20%E6%B3%A8%E6%84%8F%0A%20%20%2B0%20%3D%3D%3D%20-0%20%2F%2Ftrue%0A%20%20NaN%20%3D%3D%3D%20NaN%20%2F%2F%20false%0A%20%20%0A%20%20Object.is(%2B0%2C%20-0)%20%2F%2F%20false%0A%20%20Object.is(NaN%2C%20NaN)%20%2F%2F%20true%0A%0A%20%20%2F%2Fassign%0A%20%20console.log('%E6%8B%B7%E8%B4%9D'%2CObject.assign(%7Ba%3A'a'%7D%2C%7Bb%3A'b'%7D))%20%2F%2F%20%7Ba%3Aa%2Cb%3Ab%7D%20%E6%B3%A8%E6%84%8F%E8%BF%99%E6%98%AF%E6%B5%85%E6%8B%B7%E8%B4%9D%0A%20%20%0A%20%20%2F%2F%20entries%0A%20%20let%20test%3D%7Bk%3A123%2Co%3A456%7D%3B%0A%20%20for(let%20%5Bkey%2Cvalue%5D%20of%20Object.entries(test))%7B%0A%20%20%20%20console.log(%5Bkey%2Cvalue%5D)%0A%20%20%20%20%2F%2F%20%5Bk%2C123%5D%20%5Bo%2C456%5D%0A%20%20%7D%0A%7D%0A%0A%7B%0A%20%20%2F%2F%20%E6%89%A9%E5%B1%95%E8%BF%90%E7%AE%97%E7%AC%A6%0A%20%20%20let%20%7Ba%2Cb%2C...c%7D%3D%7Ba%3A'test'%2Cb%3A'kill'%2Cc%3A'ddd'%2Cd%3A'ccc'%7D%3B%0A%20%20%2F%2F%20babel%E5%AF%B9%E8%BF%99%E4%B8%AA%E6%94%AF%E6%8C%81%E8%BF%98%E4%B8%8D%E6%98%AF%E5%BE%88%E5%8F%8B%E5%A5%BD%20%0A%20%20%20c%3D%7B%0A%20%20%20%20%20c%3A'ddd'%2C%0A%20%20%20%20%20d%3A'ccc'%0A%20%20%20%7D%0A%7D%0A%60%60%60%0A%23%23%23%23%23%206%E3%80%81set%E5%92%8Cmap%E4%BB%A5%E5%8F%8A%E5%92%8C%E6%95%B0%E7%BB%84%E5%AF%B9%E8%B1%A1%E7%9A%84%E5%AF%B9%E6%AF%94%0A**%EF%BC%881%EF%BC%89Set**%0A%60%60%60javascript%0A%0A%2F%2F%20%E5%A3%B0%E6%98%8E%E6%96%B9%E5%BC%8F1%0A%7B%0A%20%20let%20list%20%3D%20new%20Set()%0A%20%20list.add(5)%0A%20%20list.add(7)%0A%0A%20%20console.log(list.size)%20%2F%2F%202%0A%7D%0A%0A%2F%2F%20%E5%A3%B0%E6%98%8E%E6%96%B9%E5%BC%8F2%0A%7B%0A%20%20let%20arr%20%3D%20%5B1%2C2%2C3%2C4%2C5%5D%0A%20%20let%20list%20%3D%20new%20Set(arr)%0A%0A%20%20console.log(list.size)%20%2F%2F%205%0A%7D%0A%0A%2F%2F%20%E4%B8%8D%E5%8F%AF%E4%BB%A5%E6%9C%89%E9%87%8D%E5%A4%8D%E7%9A%84%E6%88%90%E5%91%98%0A%7B%0A%20%20let%20list%20%3D%20new%20Set()%0A%20%20list.add(1)%0A%20%20list.add(2)%0A%20%20list.add(1)%0A%0A%20%20console.log(list)%3B%20%2F%2F%20%E5%8F%AA%E6%9C%89%201%2C2%2F%2F%20%E7%94%A8%E9%80%94%20%E6%95%B0%E7%BB%84%E5%8E%BB%E9%87%8D%0A%20%20let%20arr%3D%5B1%2C2%2C3%2C1%2C2%5D%0A%20%20let%20list2%3Dnew%20Set(arr)%0A%0A%20%20console.log(list2)%20%2F%2F%201%2C2%2C3%0A%7D%0A%0A%2F%2F%20api%20crud%20%E4%B8%8D%E5%86%8D%E5%A4%9A%E8%AF%B4%20%E7%9C%8B%E6%A0%97%E5%AD%90%0A%7B%0A%20%20let%20arr%3D%5B'add'%2C'delete'%2C'clear'%2C'has'%5D%0A%20%20let%20list%3Dnew%20Set(arr)%0A%0A%20%20console.log('has'%2Clist.has('add'))%20%2F%2F%20true%0A%20%20console.log('delete'%2Clist.delete('add')%2Clist)%20%2F%2F%20'delete'%2C'clear'%2C'has'%0A%20%20list.clear()%20%2F%2F%20%E6%B2%A1%E4%BA%86%E9%83%BD%E5%88%A0%E4%BA%86%0A%20%20console.log('list'%2Clist)%0A%7D%0A%0A%2F%2F%20%E9%81%8D%E5%8E%86%20%E9%83%BD%E6%98%AF%E6%88%91%E4%BB%AC%E5%B8%B8%E7%94%A8%E7%9A%84%0A%7B%0A%20%20let%20arr%3D%5B'add'%2C'delete'%2C'clear'%2C'has'%5D%0A%20%20let%20list%3Dnew%20Set(arr)%0A%0A%20%20for(let%20key%20of%20list.keys())%7B%0A%20%20%20%20console.log('keys'%2Ckey)%0A%20%20%7D%0A%20%20for(let%20value%20of%20list.values())%7B%0A%20%20%20%20console.log('value'%2Cvalue)%0A%20%20%7D%0A%20%20for(let%20%5Bkey%2Cvalue%5D%20of%20list.entries())%7B%0A%20%20%20%20console.log('entries'%2Ckey%2Cvalue)%0A%20%20%7D%0A%0A%20%20list.forEach(function(item)%7Bconsole.log(item)%7D)%0A%7D%0A%0A%2F%2F%20weakSet%20%E8%BF%99%E7%8E%A9%E6%84%8F%E6%88%90%E5%91%98%E5%8F%AA%E8%83%BD%E6%98%AF%E5%AF%B9%E8%B1%A1%2CSet%E6%9C%89%E7%9A%84%E6%96%B9%E6%B3%95%E4%BB%96%E9%83%BD%E6%9C%89%0A%7B%0A%20%20let%20weakList%3Dnew%20WeakSet()%0A%0A%20%20let%20arg%3D%7B%7D%0A%0A%20%20weakList.add(arg)%0A%0A%20%20console.log(weakList)%3B%0A%7D%0A%60%60%60%0A**%EF%BC%882%EF%BC%89Map**%0A%60%60%60javascript%0A%2F%2F%20%E5%A3%B0%E6%98%8E%E6%96%B9%E5%BC%8F%0A%2F%2F%20map%E7%9A%84key%E5%8F%AF%E4%BB%A5%E6%98%AF%E4%BB%BB%E6%84%8F%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%0A%7B%0A%20%20let%20map%20%3D%20new%20Map()%0A%20%20let%20arr%3D%5B'123'%5D%0A%0A%20%20map.set(arr%2C456)%0A%0A%20%20console.log('map'%2Cmap%2Cmap.get(arr))%20%2F%2F%20456%0A%7D%0A%0A%2F%2F%20%E5%B8%B8%E7%94%A8api%2C%E5%92%8Cset%E5%BE%88%E7%B1%BB%E4%BC%BC%2C%E6%94%BE%E6%8E%A7%E5%88%B6%E5%8F%B0%E6%89%93%E5%8D%B0%E5%B0%B1%E6%98%8E%E7%99%BD%0A%7B%0A%20%20let%20map%20%3D%20new%20Map(%5B%5B'a'%2C123%5D%2C%5B'b'%2C456%5D%5D)%0A%20%20console.log('map'%2Cmap)%0A%20%20console.log('size'%2Cmap.size)%0A%20%20console.log('delete'%2Cmap.delete('a')%2Cmap)%0A%20%20console.log('clear'%2Cmap.clear()%2Cmap)%0A%7D%0A%0A%2F%2F%20weakmap%20%E5%92%8CweakSet%E4%B8%80%E6%A0%B7%20%E6%88%90%E5%91%98%E5%BF%85%E9%A1%BB%E6%98%AF%E5%AF%B9%E8%B1%A1%0A%7B%0A%20%20let%20weakmap%3Dnew%20WeakMap()%0A%0A%20%20let%20o%3D%7B%7D%0A%20%20weakmap.set(o%2C123)%0A%20%20console.log(weakmap.get(o))%0A%7D%0A%60%60%60%0A**%EF%BC%883%EF%BC%89Set%2CMap%E5%92%8C%E6%95%B0%E7%BB%84%2C%E5%AF%B9%E8%B1%A1%E7%9A%84%E6%A8%AA%E5%90%91%E5%AF%B9%E6%AF%94**%0A%60%60%60javascript%0A%7B%0A%20%20%2F%2F%20map%E5%92%8Carray%E7%9A%84%E5%AF%B9%E6%AF%94%0A%20%20%2F%2F%20%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84%E6%A8%AA%E5%90%91%E5%AF%B9%E6%AF%94%EF%BC%8C%E5%A2%9E%EF%BC%8C%E6%9F%A5%EF%BC%8C%E6%94%B9%EF%BC%8C%E5%88%A0%0A%20%20let%20map%3Dnew%20Map()%0A%20%20let%20array%3D%5B%5D%0A%20%20%2F%2F%20%E5%A2%9E%0A%20%20map.set('t'%2C1)%0A%20%20array.push(%7Bt%3A1%7D)%0A%0A%20%20console.info('map-array'%2Cmap%2Carray)%0A%0A%20%20%2F%2F%20%E6%9F%A5%0A%20%20let%20map_exist%3Dmap.has('t')%3B%0A%20%20let%20array_exist%3Darray.find(item%3D%3Eitem.t)%0A%20%20console.info('map-array'%2Cmap_exist%2Carray_exist)%0A%0A%20%20%2F%2F%20%E6%94%B9%0A%20%20map.set('t'%2C2)%0A%20%20array.forEach(item%3D%3Eitem.t%3Fitem.t%3D2%3A'')%0A%20%20console.info('map-array-modify'%2Cmap%2Carray)%0A%0A%20%20%2F%2F%20%E5%88%A0%0A%20%20map.delete('t')%0A%20%20let%20index%3Darray.findIndex(item%3D%3Eitem.t)%0A%20%20array.splice(index%2C1)%0A%20%20console.info('map-array-empty'%2Cmap%2Carray)%0A%7D%0A%0A%7B%0A%20%20%2F%2F%20set%E5%92%8Carray%E7%9A%84%E5%AF%B9%E6%AF%94%0A%20%20let%20set%3Dnew%20Set()%0A%20%20let%20array%3D%5B%5D%0A%0A%20%20%2F%2F%20%E5%A2%9E%0A%20%20set.add(%7Bt%3A1%7D)%0A%20%20array.push(%7Bt%3A1%7D)%0A%0A%20%20console.info('set-array'%2Cset%2Carray)%0A%0A%20%20%2F%2F%20%E6%9F%A5%0A%20%20let%20set_exist%3Dset.has(%7Bt%3A1%7D)%0A%20%20let%20array_exist%3Darray.find(item%3D%3Eitem.t)%0A%20%20console.info('set-array'%2Cset_exist%2Carray_exist)%0A%0A%20%20%2F%2F%20%E6%94%B9%0A%20%20set.forEach(item%3D%3Eitem.t%3Fitem.t%3D2%3A'')%0A%20%20array.forEach(item%3D%3Eitem.t%3Fitem.t%3D2%3A'')%0A%20%20console.info('set-array-modify'%2Cset%2Carray)%0A%0A%20%20%2F%2F%20%E5%88%A0%0A%20%20set.forEach(item%3D%3Eitem.t%3Fset.delete(item)%3A'')%0A%20%20let%20index%3Darray.findIndex(item%3D%3Eitem.t)%0A%20%20array.splice(index%2C1)%0A%20%20console.info('set-array-empty'%2Cset%2Carray)%0A%7D%0A%0A%7B%0A%20%20%2F%2F%20map%2Cset%2Cobject%E5%AF%B9%E6%AF%94%0A%20%20let%20item%3D%7Bt%3A1%7D%0A%20%20let%20map%3Dnew%20Map()%0A%20%20let%20set%3Dnew%20Set()%0A%20%20let%20obj%3D%7B%7D%0A%0A%20%20%2F%2F%20%E5%A2%9E%0A%20%20map.set('t'%2C1)%0A%20%20set.add(item)%0A%20%20obj%5B't'%5D%3D1%0A%0A%20%20console.info('map-set-obj'%2Cobj%2Cmap%2Cset)%0A%0A%20%20%2F%2F%20%E6%9F%A5%0A%20%20console.info(%7B%0A%20%20%20%20map_exist%3Amap.has('t')%2C%0A%20%20%20%20set_exist%3Aset.has(item)%2C%0A%20%20%20%20obj_exist%3A't'%20in%20obj%0A%20%20%7D)%0A%0A%20%20%2F%2F%20%E6%94%B9%0A%20%20map.set('t'%2C2)%0A%20%20item.t%3D2%0A%20%20obj%5B't'%5D%3D2%0A%20%20console.info('map-set-obj-modify'%2Cobj%2Cmap%2Cset)%0A%0A%20%20%2F%2F%20%E5%88%A0%E9%99%A4%0A%20%20map.delete('t')%0A%20%20set.delete(item)%0A%20%20delete%20obj%5B't'%5D%0A%20%20console.info('map-set-obj-empty'%2Cobj%2Cmap%2Cset)%0A%7D%0A%60%60%60%0A%0A%23%23%20%E4%BA%94%E3%80%81vue%0A%23%23%23%23%23%201%E3%80%81%E7%BB%84%E4%BB%B6%E5%90%8D%0A%E7%BB%84%E4%BB%B6%E5%90%8D%E4%B8%BA%E5%A4%9A%E4%B8%AA%E5%8D%95%E8%AF%8D%EF%BC%8C%E5%B9%B6%E4%B8%94%E7%94%A8%E8%BF%9E%E6%8E%A5%E7%BA%BF%EF%BC%88-%EF%BC%89%E8%BF%9E%E6%8E%A5%EF%BC%8C%E9%81%BF%E5%85%8D%E4%B8%8E%20HTML%20%E6%A0%87%E7%AD%BE%E5%86%B2%E7%AA%81%EF%BC%8C%E5%B9%B6%E4%B8%94%E7%BB%93%E6%9E%84%E6%9B%B4%E5%8A%A0%E6%B8%85%E6%99%B0%E3%80%82%0A%60%60%60html%0A%3Cpage-header%3E%3C%2Fpage-header%3E%0A%60%60%60%0A%0A%23%23%23%23%23%202%E3%80%81%E7%BB%84%E4%BB%B6%E6%96%87%E4%BB%B6%0A%EF%BC%881%EF%BC%89%E7%BB%84%E4%BB%B6%E7%9A%84%E5%90%8D%E5%AD%97%E5%BA%94%E8%AF%A5%E5%A7%8B%E7%BB%88%E6%98%AF%E4%BB%A5%E8%BF%9E%E6%8E%A5%E7%BA%BF%EF%BC%88-%EF%BC%89%E8%BF%9E%E6%8E%A5%E7%9A%84%E5%8D%95%E8%AF%8D%EF%BC%8C%E4%B8%80%E6%96%B9%E9%9D%A2%E5%8F%AF%E4%B8%8E%E7%BB%84%E4%BB%B6%E5%90%8D%E4%B8%80%E8%87%B4%EF%BC%8C%E4%BD%BF%E9%A1%B9%E7%9B%AE%E6%9B%B4%E5%8A%A0%E6%B8%85%E6%99%B0%EF%BC%8C%E5%8F%A6%E4%B8%80%E6%96%B9%E9%9D%A2%E8%BF%99%E6%A0%B7%E7%9A%84%E5%86%99%E6%B3%95%E5%AF%B9%E7%BC%96%E8%BE%91%E5%99%A8%E5%BC%95%E5%85%A5%E4%B9%9F%E5%BE%88%E5%8F%8B%E5%A5%BD%E3%80%82%0A%60%60%60javascript%0A%2F%2F%20%E5%8F%8D%E4%BE%8B%0A%E2%94%9C%E2%94%80%E2%94%80%20index.html%0A%E2%94%9C%E2%94%80%E2%94%80%20main.js%0A%E2%94%94%E2%94%80%E2%94%80%20components%0A%20%20%20%20%E2%94%94%E2%94%80%E2%94%80%20pageheader%0A%0A%2F%2F%20%E6%AD%A3%E4%BE%8B%0A%E2%94%9C%E2%94%80%E2%94%80%20index.html%0A%E2%94%9C%E2%94%80%E2%94%80%20main.js%0A%E2%94%94%E2%94%80%E2%94%80%20components%0A%20%20%20%20%E2%94%94%E2%94%80%E2%94%80%20page-header%20%2F%2F%E6%AD%A4%E5%A4%84%E4%B8%BA%EF%BC%88-%EF%BC%89%E8%BF%9E%E6%8E%A5%0A%60%60%60%0A%0A%EF%BC%882%EF%BC%89%E5%AF%B9%E4%BA%8E%E4%BE%8B%E5%A6%82%E6%8C%89%E9%92%AE%E3%80%81%E4%B8%8B%E6%8B%89%E6%A1%86%E6%88%96%E8%A1%A8%E6%A0%BC%E8%BF%99%E6%A0%B7%E7%9A%84%E5%9F%BA%E7%A1%80%E7%BB%84%E4%BB%B6%E5%BA%94%E8%AF%A5%E5%A7%8B%E7%BB%88%E4%BB%A5%E4%B8%80%E4%B8%AA%E7%89%B9%E5%AE%9A%E7%9A%84%E5%89%8D%E7%BC%80%E5%BC%80%E5%A4%B4%EF%BC%8C%E5%8C%BA%E5%88%AB%E4%B8%8E%E5%85%B6%E4%BB%96%E4%B8%9A%E5%8A%A1%0A%E7%BB%84%E4%BB%B6%0A%60%60%60javascript%0A%0A%2F%2F%20%E5%8F%8D%E4%BE%8B%0A%E2%94%9C%E2%94%80%E2%94%80%20index.html%0A%E2%94%9C%E2%94%80%E2%94%80%20main.js%0A%E2%94%94%E2%94%80%E2%94%80%20components%0A%20%20%20%20%E2%94%9C%E2%94%80%E2%94%80%20page-header%0A%20%20%20%20%E2%94%9C%E2%94%80%E2%94%80%20page-article%0A%20%20%20%20%E2%94%9C%E2%94%80%E2%94%80%20page-header%0A%20%20%20%20%E2%94%9C%E2%94%80%E2%94%80%20mazey-button%0A%20%20%20%20%E2%94%9C%E2%94%80%E2%94%80%20mazey-select%0A%20%20%20%20%E2%94%94%E2%94%80%E2%94%80%20mazey-table%0A%0A%2F%2F%20%E6%AD%A3%E4%BE%8B%0A%E2%94%9C%E2%94%80%E2%94%80%20index.html%0A%E2%94%9C%E2%94%80%E2%94%80%20main.js%0A%E2%94%94%E2%94%80%E2%94%80%20components%0A%20%7C%20%20%20%E2%94%9C%E2%94%80%E2%94%80%20page-header%0A%20%7C%20%20%20%E2%94%9C%E2%94%80%E2%94%80%20page-article%0A%20%7C%20%20%20%E2%94%94%E2%94%80%E2%94%80%20page-header%0A%20%E2%94%94%E2%94%80%E2%94%80%20base%0A%20%20%20%20%E2%94%9C%E2%94%80%E2%94%80%20mazey-button%0A%20%20%20%20%E2%94%9C%E2%94%80%E2%94%80%20mazey-select%0A%20%20%20%20%E2%94%94%E2%94%80%E2%94%80%20mazey-table%0A%60%60%60%0A%23%23%23%23%23%203%E3%80%81Prop%E5%91%BD%E5%90%8D%0A%0A%E5%AE%9A%E4%B9%89%20Prop%20%E7%9A%84%E6%97%B6%E5%80%99%E5%BA%94%E8%AF%A5%E5%A7%8B%E7%BB%88%E4%BB%A5%60%E9%A9%BC%E5%B3%B0%E6%A0%BC%E5%BC%8F%E5%91%BD%E5%90%8D%60*%EF%BC%8C%E5%9C%A8%E7%88%B6%E7%BB%84%E4%BB%B6%E8%B5%8B%E5%80%BC%E7%9A%84%E6%97%B6%E5%80%99%E4%BD%BF%E7%94%A8%E8%BF%9E%E6%8E%A5%E7%BA%BF%EF%BC%88-%EF%BC%89%E3%80%82%E8%BF%99%E9%87%8C%E9%81%B5%E5%BE%AA%E6%AF%8F%E4%B8%AA%E8%AF%AD%E8%A8%80%E7%9A%84%E7%89%B9%E6%80%A7%EF%BC%8C%E5%9B%A0%E4%B8%BA%E5%9C%A8%20HTML%20%E6%A0%87%E8%AE%B0%E4%B8%AD%E5%AF%B9%E5%A4%A7%E5%B0%8F%E5%86%99%E6%98%AF%E4%B8%8D%E6%95%8F%E6%84%9F%E7%9A%84%EF%BC%8C%E4%BD%BF%E7%94%A8%E8%BF%9E%E6%8E%A5%E7%BA%BF%E6%9B%B4%E5%8A%A0%E5%8F%8B%E5%A5%BD%EF%BC%9B%E8%80%8C%E5%9C%A8%20JavaScript%20%E4%B8%AD%E6%9B%B4%E8%87%AA%E7%84%B6%E7%9A%84%E6%98%AF%E9%A9%BC%E5%B3%B0%E5%91%BD%E5%90%8D%E3%80%82%0A%60%60%60javascript%0A%2F%2F%20%E5%8F%8D%E4%BE%8B%0Aprops%3A%20%7B%0A%20%20%20%20article-status%3A%20Boolean%0A%7D%0A%2F%2FHTML%0A%3Carticle-item%20%3AarticleStatus%3D%22true%22%3E%3C%2Farticle-item%3E%0A%0A%2F%2F%20%E6%AD%A3%E4%BE%8B%0Aprops%3A%20%7B%0A%20%20%20%20articleStatus%3A%20Boolean%0A%7D%0A%2F%2FHTML%0A%3Carticle-item%20%3Aarticle-status%3D%22true%22%3E%3C%2Farticle-item%3E%0A%60%60%60%0A%23%23%23%23%23%204%E3%80%81Prop%E5%AE%9A%E4%B9%89%0A%0AProp%20%E7%9A%84%E5%AE%9A%E4%B9%89%E5%BA%94%E8%AF%A5%E5%B0%BD%E9%87%8F%E8%AF%A6%E7%BB%86%E7%9A%84%E6%8C%87%E5%AE%9A%E5%85%B6%E7%B1%BB%E5%9E%8B%E3%80%81%E9%BB%98%E8%AE%A4%E5%80%BC%E5%92%8C%E9%AA%8C%E8%AF%81%E3%80%82%0A%60%60%60javascript%0A%2F%2F%20%E5%8F%8D%E4%BE%8B%0Aprops%3A%20%5B'attrM'%2C%20'attrA'%5D%0A%0A%2F%2F%20%E6%AD%A3%E4%BE%8B%0Aprops%3A%20%7B%0A%20%20%20%20attrM%3A%20Number%2C%0A%20%20%20%20attrA%3A%20%7B%0A%20%20%20%20%20%20%20%20type%3A%20String%2C%0A%20%20%20%20%20%20%20%20required%3A%20true%0A%20%20%20%20%7D%2C%0A%20%20%20%20attrZ%3A%20%7B%0A%20%20%20%20%20%20%20%20type%3A%20Object%2C%0A%20%20%20%20%20%20%20%20default%3A%20function%20()%20%7B%20%2F%2F%20%E6%95%B0%E7%BB%84%2F%E5%AF%B9%E8%B1%A1%E7%9A%84%E9%BB%98%E8%AE%A4%E5%80%BC%E5%BA%94%E8%AF%A5%E7%94%B1%E4%B8%80%E4%B8%AA%E5%B7%A5%E5%8E%82%E5%87%BD%E6%95%B0%E8%BF%94%E5%9B%9E%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20msg%3A%20'%E6%88%90%E5%B0%B1%E4%BD%A0%E6%88%91'%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%7D%0A%60%60%60%0A%23%23%23%23%23%205%E3%80%81v-for%E5%9C%A8%E6%89%A7%E8%A1%8C%20%0Av-for%20%E9%81%8D%E5%8E%86%E7%9A%84%E6%97%B6%E5%80%99%EF%BC%8C%E6%80%BB%E6%98%AF%E5%BA%94%E8%AF%A5%E5%B8%A6%E4%B8%8A%20key%20%E5%80%BC%E4%BD%BF%E6%9B%B4%E6%96%B0%20DOM%20%E6%97%B6%E6%B8%B2%E6%9F%93%E6%95%88%E7%8E%87%E6%9B%B4%E9%AB%98%E3%80%82%0A%60%60%60html%0A%3Cli%20v-for%3D%22item%20in%20list%22%20%3Akey%3D%22item.id%22%3E%0A%20%20%20%20%7B%7B%20item.title%20%7D%7D%0A%3C%2Fli%3E%0A%60%60%60%0A%23%23%23%23%23%206%E3%80%81v-if%20%2F%20v-else-if%20%2F%20v-else%0A%0A%E8%8B%A5%E5%90%8C%E4%B8%80%E7%BB%84%20v-if%20%E9%80%BB%E8%BE%91%E6%8E%A7%E5%88%B6%E4%B8%AD%E7%9A%84%E5%85%83%E7%B4%A0%E9%80%BB%E8%BE%91%E7%9B%B8%E5%90%8C%EF%BC%8CVue%20%E4%B8%BA%E4%BA%86%E6%9B%B4%E9%AB%98%E6%95%88%E7%9A%84%E5%85%83%E7%B4%A0%E5%88%87%E6%8D%A2%EF%BC%8C%E4%BC%9A%E5%A4%8D%E7%94%A8%E7%9B%B8%E5%90%8C%E7%9A%84%E9%83%A8%E5%88%86%EF%BC%8C%E4%BE%8B%E5%A6%82%EF%BC%9Avalue%E3%80%82%E4%B8%BA%E4%BA%86%E9%81%BF%E5%85%8D%E5%A4%8D%E7%94%A8%E5%B8%A6%E6%9D%A5%E7%9A%84%E4%B8%8D%E5%90%88%E7%90%86%E6%95%88%E6%9E%9C%EF%BC%8C%E5%BA%94%E8%AF%A5%E5%9C%A8%E5%90%8C%E7%A7%8D%E5%85%83%E7%B4%A0%E4%B8%8A%E5%8A%A0%E4%B8%8A%20key%20%E5%81%9A%E6%A0%87%E8%AF%86%E3%80%82%0A%60%60%60html%0A%2F%2F%20%E5%8F%8D%E4%BE%8B%0A%3Cdiv%20v-if%3D%22hasData%22%3E%0A%20%20%20%20%3Cspan%3E%7B%7B%20mazeyData%20%7D%7D%3C%2Fspan%3E%0A%3C%2Fdiv%3E%0A%3Cdiv%20v-else%3E%0A%20%20%20%20%3Cspan%3E%E6%97%A0%E6%95%B0%E6%8D%AE%3C%2Fspan%3E%0A%3C%2Fdiv%3E%0A%0A%2F%2F%20%E6%AD%A3%E4%BE%8B%0A%3Cdiv%20v-if%3D%22hasData%22%20key%3D%22mazey-data%22%3E%0A%20%20%20%20%3Cspan%3E%7B%7B%20mazeyData%20%7D%7D%3C%2Fspan%3E%0A%3C%2Fdiv%3E%0A%3Cdiv%20v-else%20key%3D%22mazey-none%22%3E%0A%20%20%20%20%3Cspan%3E%E6%97%A0%E6%95%B0%E6%8D%AE%3C%2Fspan%3E%0A%3C%2Fdiv%3E%0A%60%60%60%0A%0A%23%23%23%23%23%207%E3%80%81%E6%8C%87%E4%BB%A4%E7%BC%A9%E5%86%99%0A%0A%E4%B8%BA%E4%BA%86%E7%BB%9F%E4%B8%80%E8%A7%84%E8%8C%83%E5%A7%8B%E7%BB%88%E4%BD%BF%E7%94%A8%E6%8C%87%E4%BB%A4%E7%BC%A9%E5%86%99%EF%BC%8C%E4%BD%BF%E7%94%A8v-bind%EF%BC%8Cv-on%E5%B9%B6%E6%B2%A1%E6%9C%89%E4%BB%80%E4%B9%88%E4%B8%8D%E5%A5%BD%EF%BC%8C%E8%BF%99%E9%87%8C%E4%BB%85%E4%B8%BA%E4%BA%86%E7%BB%9F%E4%B8%80%E8%A7%84%E8%8C%83%0A%60%60%60html%0A%3Cinput%20%3Avalue%3D%22userName%22%20%40click%3D%22userName%22%3E%0A%60%60%60%0A%23%23%23%23%23%208%E3%80%81%E6%A0%B7%E5%BC%8F%0A%E4%B8%BA%E4%BA%86%E9%81%BF%E5%85%8D%E6%A0%B7%E5%BC%8F%E5%86%B2%E7%AA%81%EF%BC%8C%E6%95%B4%E4%B8%AA%E9%A1%B9%E7%9B%AE%E8%A6%81%E4%B9%88%E5%85%A8%E9%83%BD%E4%BD%BF%E7%94%A8%20scoped%20%E7%89%B9%E6%80%A7%EF%BC%8C%E8%A6%81%E4%B9%88%E4%BD%BF%E7%94%A8%20BEM%20%E7%BA%A6%E5%AE%9A%E3%80%82%0A%0A%23%23%23%23%23%209%E3%80%81%E5%8D%95%E6%96%87%E4%BB%B6%E7%BB%84%E4%BB%B6%E7%9A%84%E9%A1%B6%E7%BA%A7%E5%85%83%E7%B4%A0%E9%A1%BA%E5%BA%8F%0A%60%60%60html%0A%2F%2F%20%E5%8F%8D%E4%BE%8B%0A%3Cstyle%3E%0A%2F*%20CSS%20*%2F%0A%3C%2Fstyle%3E%0A%0A%3Cscript%3E%0A%2F*%20JavaScript%20*%2F%0A%3C%2Fscript%3E%0A%0A%3Ctemplate%3E%0A%3C!--%20HTML%20--%3E%0A%3C%2Ftemplate%3E%0A%0A%2F%2F%20%E6%AD%A3%E4%BE%8B%0A%3Ctemplate%3E%0A%3C!--%20HTML%20--%3E%0A%3C%2Ftemplate%3E%0A%0A%3Cscript%3E%0A%2F*%20JavaScript%20*%2F%0A%3C%2Fscript%3E%0A%0A%3Cstyle%3E%0A%2F*%20CSS%20*%2F%0A%3C%2Fstyle%3E%0A%60%60%60%0A%0A%0A%23%23%20%E5%85%AD%E3%80%81React%0A%23%23%23%23%23%201%E3%80%81%E5%90%84%E7%B1%BB%E5%9E%8B%E5%91%BD%E5%90%8D%E8%A7%84%E8%8C%83%0A%0A%7C%20%E5%90%8D%E7%A7%B0%20%7C%20%E5%91%BD%E5%90%8D%E6%96%B9%E6%B3%95%20%7C%20%E8%AF%8D%E6%B1%87%E7%A7%8D%E7%B1%BB%20%7C%20%E8%AF%B4%E6%98%8E%20%7C%20%E4%B8%BE%E4%BE%8B%20%7C%0A%7C%20---%20%7C%20---%20%7C%20---%20%7C%20---%20%7C%20---%20%7C%0A%7C%20%E5%B1%80%E9%83%A8%E5%8F%98%E9%87%8F%E5%90%8D%20%7C%20Camel%E5%91%BD%E5%90%8D%E6%B3%95%20%7C%20%E5%90%8D%E8%AF%8D%20%7C%20%20%7C%20fristName%20%7C%0A%7C%20%E5%85%A8%E5%B1%80%E5%8F%98%E9%87%8F%E5%90%8D%20%7C%20Camel%E5%91%BD%E5%90%8D%E6%B3%95%20%7C%20%E5%90%8D%E8%AF%8D%20%7C%20%E5%89%8D%E7%BC%80%3Ag%20%7C%20gFristName%20%7C%0A%7C%20%E5%8F%82%E6%95%B0%E5%90%8D%20%7C%20Camel%E5%91%BD%E5%90%8D%E6%B3%95%20%7C%20%E5%90%8D%E8%AF%8D%20%7C%20%20%7C%20fristName%20%7C%0A%7C%20%E6%96%B9%E6%B3%95%2F%E5%B1%9E%E6%80%A7%20%7C%20Camel%E5%91%BD%E5%90%8D%E6%B3%95%20%7C%20%E5%90%8D%E8%AF%8D%20%7C%20%20%7C%20fristName%20%7C%0A%7C%20%E7%A7%81%E6%9C%89%EF%BC%88%E4%BF%9D%E6%8A%A4%EF%BC%89%E6%88%90%E5%91%98%20%7C%20Camel%E5%91%BD%E5%90%8D%E6%B3%95%20%7C%20%E5%90%8D%E8%AF%8D%20%7C%20%E5%89%8D%E7%BC%80%3A_%20%7C%20_fristName%20%7C%0A%7C%20%E5%B8%B8%E9%87%8F%E5%90%8D%20%7C%20%20%7C%20%E5%90%8D%E8%AF%8D%20%7C%20%E4%B8%8B%E5%88%92%E7%BA%BF%2B%E5%85%A8%E4%BD%93%E5%A4%A7%E5%86%99%20%7C%20ADD_METHOD%20%7C%0A%7C%20%E7%B1%BB%E5%90%8D%20%7C%20Pascal%E5%91%BD%E5%90%8D%E6%B3%95%20%7C%20%E5%90%8D%E8%AF%8D%20%7C%20%20%7C%20AtiveDic%20%7C%0A%7C%20Bool%E7%B1%BB%E5%9E%8B%20%7C%20Camel%E5%91%BD%E5%90%8D%E6%B3%95%20%7C%20%E5%90%8D%E8%AF%8D%20%7C%20%E5%89%8D%E7%BC%80%3Ais%2Fhas%20%7C%20hasChild%20%7C%0A%0A%23%23%23%23%23%201%E3%80%81%E5%87%BD%E6%95%B0%E4%B8%8E%E7%B1%BB%E7%9A%84%E5%91%BD%E5%90%8D%0A%7C%20%E5%8A%A8%E8%AF%8D%20%7C%20%E5%90%AB%E4%B9%89%20%7C%20%E4%B8%BE%E4%BE%8B%20%7C%0A%7C%20--------%20%20%20%7C%20-----%20%20%7C%20----%20%20%7C%0A%7C%20Can%20%7C%20%E5%88%A4%E6%96%AD%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E6%89%A7%E8%A1%8C%E6%9F%90%E4%B8%AA%E6%9D%83%E9%99%90%20%7C%20CanLogin%20%7C%0A%7C%20Has%20%7C%20%E5%88%A4%E6%96%AD%E6%98%AF%E5%90%A6%E5%90%AB%E6%9C%89%E6%9F%90%E4%B8%AA%E5%80%BC%20%7C%20HasToken%20%7C%0A%7C%20Is%20%7C%20%E5%88%A4%E6%96%AD%E6%98%AF%E5%90%A6%E4%B8%BA%E6%9F%90%E4%B8%AA%E5%80%BC%20%7C%20IsShowModel%20%7C%0A%7C%20Get%20%7C%20%E8%8E%B7%E5%8F%96%E6%9F%90%E4%B8%AA%E5%80%BC%20%7C%20GetUserId%20%7C%0A%7C%20Set%20%7C%20%E8%AE%BE%E7%BD%AE%E6%9F%90%E4%B8%AA%E5%80%BC%20%7C%20SetCookie%20%7C%0A%7C%20Load%20%7C%20%E5%8A%A0%E8%BD%BD%E6%9F%90%E4%BA%9B%E6%95%B0%E6%8D%AE%20%7C%20LoadList%20%7C%0A%7C%20Update%20%7C%20%E6%9B%B4%E6%96%B0%E6%9F%90%E4%BA%9B%E6%95%B0%E6%8D%AE%20%7C%20UpdateUserInfo%20%7C%0A%7C%20Del%20%7C%20%E5%88%A0%E9%99%A4%E6%9F%90%E4%BA%9B%E6%95%B0%E6%8D%AE%20%7C%20DelMenu%20%7C%0A%23%23%23%23%23%202%E3%80%81props%E7%9A%84%E4%BD%BF%E7%94%A8%0A%E5%AE%9A%E4%B9%89%EF%BC%9A%E5%A4%A7%E5%A4%9A%E6%95%B0%E7%BB%84%E4%BB%B6%E5%9C%A8%E5%AE%9A%E4%B9%89%E6%97%B6%E5%B0%B1%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E5%90%84%E7%A7%8D%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%82%E6%95%B0%E6%9D%A5%E5%AE%9E%E7%8E%B0%E7%BB%84%E4%BB%B6%E7%9A%84%E5%AE%9A%E5%88%B6%E3%80%82%0A**%E7%BC%96%E7%A8%8B%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9%EF%BC%9A**%0A*%20%E5%9C%A8%E9%A1%B5%E9%9D%A2%E4%B8%AD%E7%A6%81%E6%AD%A2%E7%9B%B4%E6%8E%A5%E4%BF%AE%E6%94%B9propsthis.props.name%20%3D%20'Alen'%E3%80%82%0A*%20%E5%9C%A8%E8%B0%83%E7%94%A8props%E6%97%B6%E5%B0%BD%E9%87%8F%E4%BD%BF%E7%94%A8%E6%89%A9%E5%B1%95%E7%AC%A6%EF%BC%8C%E5%A6%82%E4%B8%8B%E6%89%80%E7%A4%BA%0A%60%60%60javascript%0A%2F%2F%E6%AD%A3%E4%BE%8B%0Aconst%20%7B%20name%20%7D%20%3D%20this.porps%3B%0Aconsole.log(name)%3B%0A%0A%2F%2F%E5%8F%8D%E4%BE%8B%0Aconsole.log(this.props.name)%3B%0A%60%60%60%0A*%20%E5%9C%A8%E4%BC%A0%E9%80%92props%E6%97%B6%EF%BC%8C%E5%A6%82%E6%97%A0%E5%BF%85%E8%A6%81%EF%BC%8C%E4%B8%8D%E8%83%BD%E4%BC%A0%E9%80%92%E6%95%B4%E4%B8%AAprops%EF%BC%8C%E5%8F%AA%E9%9C%80%E4%BC%A0%E9%80%92props%E4%B8%AD%E6%89%80%E9%9C%80%E8%A6%81%E7%9A%84%E5%B1%9E%E6%80%A7%EF%BC%88%E5%9C%A8models%E4%B8%AD%E7%9A%84%0A%23%23%23%23%23%203%E3%80%81state%E7%9A%84%E4%BD%BF%E7%94%A8%0A%E5%AE%9A%E4%B9%89%EF%BC%9AState%E6%98%AF%E4%B8%80%E4%B8%AA%E7%BB%84%E4%BB%B6%E7%9A%84UI%E6%95%B0%E6%8D%AE%E6%A8%A1%E5%9E%8B%EF%BC%8C%E6%98%AF%E7%BB%84%E4%BB%B6%E6%B8%B2%E6%9F%93%E6%97%B6%E7%9A%84%E6%95%B0%E6%8D%AE%E4%BE%9D%E6%8D%AE%E3%80%82%0A**%E7%BC%96%E7%A8%8B%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9%EF%BC%9A**%0A*%20%E7%BB%9D%E5%AF%B9%E4%B8%8D%E8%A6%81%20%E7%9B%B4%E6%8E%A5%E6%94%B9%E5%8F%98%20this.state%2C%E4%BD%A0%E5%8F%AF%E4%BB%A5%E5%B0%86%E5%AE%83%E7%9C%8B%E4%BD%9C%E6%98%AF%E4%B8%80%E4%B8%AA%E4%B8%8D%E5%8F%AF%E5%8F%98%E5%BE%97%E5%8F%98%E9%87%8F%EF%BC%88%E5%A6%82%E9%9C%80%E6%94%B9%E5%8F%98%E5%BF%85%E9%A1%BB%E8%B0%83%E7%94%A8setState%EF%BC%89%E3%80%82%E5%A6%82%E4%B8%8B%E6%89%80%E7%A4%BA%EF%BC%9A%0A%60%60%60javascript%0A%2F%2F%E6%AD%A3%E4%BE%8B%0Athis.setState(%7Bname%3A'Lucy'%7D)%3B%0A%20%20%20%20%0A%2F%2F%E5%8F%8D%E4%BE%8B%0Athis.state.name%20%3D%20'Lucy'%3B%0A%60%60%60%0A*%20setState%E6%97%B6%E5%BC%82%E6%AD%A5%E7%9A%84%EF%BC%8C%E8%8B%A5%E6%89%A7%E8%A1%8CsetState%E5%90%8E%E9%9C%80%E9%A9%AC%E4%B8%8A%E8%B0%83%E7%94%A8%EF%BC%8C%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E8%BF%99%E4%BA%9B%E6%96%B9%E6%B3%95%E8%BD%AC%E5%8C%96%E4%B8%BA%E5%90%8C%E6%AD%A5%E3%80%82%EF%BC%88%E6%96%B9%E6%B3%95%EF%BC%89%0A*%20%E5%92%8C%E6%B8%B2%E6%9F%93%E6%97%A0%E5%85%B3%E7%9A%84%E7%8A%B6%E6%80%81%E5%B0%BD%E9%87%8F%E4%B8%8D%E8%A6%81%E6%94%BE%E5%9C%A8%20state%20%E4%B8%AD%E6%9D%A5%E7%AE%A1%E7%90%86%0A*%20%E5%9C%A8State%E6%9B%B4%E6%96%B0%E6%97%B6%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%9B%B4%E6%96%B0%E7%9A%84%E5%80%BC%E6%B6%89%E5%8F%8A%E5%88%B0%E4%BA%86state%E5%92%8Cprops%EF%BC%8C%E6%88%91%E9%9C%80%E8%A6%81%E6%B3%A8%E6%84%8F%E5%9C%A8%E8%B0%83%E7%94%A8setState%E6%97%B6%E4%B8%8D%E8%A6%81%E7%9B%B4%E6%8E%A5%E4%BD%BF%E7%94%A8this.props%E5%92%8Cthis.state%E3%80%82%E5%A6%82%E4%B8%8B%E6%89%80%E7%A4%BA%EF%BC%9A%0A%60%60%60javascript%0A%2F%2F%E6%AD%A3%E4%BE%8B%0Athis.setState((prevState%2C%20props)%20%3D%3E%20(%7B%0A%20%20%20%20name%3A%20prevState.name%20%2B%20props.increment%0A%7D))%3B%0A%20%20%20%20%0A%2F%2F%E5%8F%8D%E4%BE%8B%0Athis.setState(%7Bname%3Athis.state.name%7D)%3B%0A%60%60%60%0A%0A*%20%E7%A6%81%E6%AD%A2%E5%9C%A8shouldComponentUpdate%E6%88%96%E8%80%85componentWillUpdate%E6%96%B9%E6%B3%95%E4%B8%AD%E8%B0%83%E7%94%A8setState%0A*%20%E6%9C%80%E5%A5%BD%E5%9C%A8componentDidMount%E4%B8%AD%E8%B0%83%E7%94%A8%0A%0A%23%23%23%23%23%204%E3%80%81%E4%BD%95%E6%97%B6%E8%B0%83%E7%94%A8%E5%93%AA%E4%B8%AA%0A*%20%E5%A6%82%E6%9E%9C%E6%95%B0%E6%8D%AE%E9%9C%80%E8%A6%81%E8%B7%A8%E7%BB%84%E4%BB%B6%E4%BC%A0%E8%BE%93%EF%BC%8C%E5%88%99%E6%94%BE%E5%9C%A8props%E4%B8%AD%E8%BF%9B%E8%A1%8C%E4%BC%A0%E9%80%92%0A*%20%E5%A6%82%E6%9E%9C%E6%95%B0%E6%8D%AE%E5%8F%AA%E5%9C%A8%E6%9C%AC%E7%BB%84%E4%BB%B6%E4%BD%BF%E7%94%A8%EF%BC%8C%E5%B9%B6%E4%B8%94%E6%B6%89%E5%8F%8A%E5%88%B0%E5%9C%A8render%E4%B8%AD%E8%BF%9B%E8%A1%8C%E6%B8%B2%E6%9F%93%EF%BC%8C%E5%88%99%E6%94%BE%E5%9C%A8state%E4%B8%AD%E8%BF%9B%E8%A1%8C%E5%A4%84%E7%90%86%0A*%20%E5%85%B6%E4%BD%99%E6%95%B0%E6%8D%AE%E5%8F%AF%E5%9C%A8%E7%BB%84%E4%BB%B6%E4%B8%AD%E7%9B%B4%E6%8E%A5%E5%AE%9A%E4%B9%89%E3%80%82%0A%0A%0A%23%23%23%23%23%205%E3%80%81%E4%BB%A3%E7%A0%81%E8%AF%AD%E4%B9%89%E5%8C%96%0A%E5%B0%BD%E5%8F%AF%E8%83%BD%E5%87%8F%E5%B0%91%E4%BB%A3%E7%A0%81%E4%B8%AD%E7%9A%84%E6%B3%A8%E9%87%8A%E3%80%82%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E8%AE%A9%E5%8F%98%EF%A5%BE%E5%90%8D%EF%A4%81%E8%AF%AD%E4%B9%89%E5%8C%96%E3%80%81%E5%8F%AA%E6%B3%A8%E9%87%8A%E5%A4%8D%E6%9D%82%E3%80%81%E6%BD%9C%E5%9C%A8%E9%80%BB%E8%BE%91%EF%BC%8C%E6%9D%A5%E5%87%8F%E5%B0%91%E6%B3%A8%E9%87%8A%EF%A5%BE%EF%BC%8C%E5%90%8C%E6%97%B6%E4%B9%9F%E6%8F%90%E9%AB%98%EF%A6%BA%E5%8F%AF%E7%BB%B4%E6%8A%A4%E6%80%A7%EF%BC%8C%E6%AF%95%E7%AB%9F%EF%A5%A7%E7%94%A8%E6%80%BB%E5%9C%A8%E4%BB%A3%E7%A0%81%E4%B8%8E%E6%B3%A8%E9%87%8A%E4%B9%8B%E9%97%B4%E5%90%8C%E6%AD%A5%EF%A6%BA%E3%80%82%0A%0A%0A%23%23%23%23%23%206%E3%80%81%E5%B0%BD%E9%87%8F%E4%BD%BF%E7%94%A8%E5%8D%95%E6%A0%87%E7%AD%BE%0A%60%60%60javascript%0A%2F%2F%E6%AD%A3%E4%BE%8B%0Arender()%7B%0A%20%20%20%20return(%0A%20%20%20%20%3Cdiv%3E%0A%20%20%20%20%20%20%20%20...%0A%20%20%20%20%20%20%20%20%3CUserInfo%20%2F%3E%0A%20%20%20%20%20%20%20%20...%0A%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20)%3B%0A%7D%0A%20%20%20%20%0A%2F%2F%E5%8F%8D%E4%BE%8B%0Arender()%7B%0A%20%20%20%20return(%0A%20%20%20%20%3Cdiv%3E%0A%20%20%20%20%20%20%20%20...%0A%20%20%20%20%20%20%20%20%3CUserInfo%3E%3C%2FUserInfo%3E%0A%20%20%20%20%20%20%20%20...%0A%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20)%3B%0A%7D%0A%60%60%60%0A%23%23%23%23%23%207%E3%80%81%E5%9C%A8%E6%A0%87%E7%AD%BE%E4%B8%AD%E9%BB%98%E8%AE%A4%E7%9A%84%E9%83%BD%E6%98%AFtrue%0A%60%60%60html%0A%2F%2F%E6%AD%A3%E4%BE%8B%0A%3CFoo%20hidden%3D%7Btrue%7D%2F%3E%0A%20%20%20%20%0A%2F%2F%E5%8F%8D%E4%BE%8B%0A%3CFoo%20hidden%20%2F%3E%0A%60%60%60%0A%0A%23%23%23%23%23%208%E3%80%81%E5%9C%A8map%E5%BE%AA%E7%8E%AF%E6%97%B6%EF%BC%8C%E4%B8%8D%E8%A6%81%E7%94%A8index%E4%BD%9C%E4%B8%BA%E6%AF%8F%E4%B8%AA%E6%A0%87%E7%AD%BE%E7%9A%84key%0A%60%60%60html%0A%2F%2F%E6%AD%A3%E4%BE%8B%0A%7Btodos.map(todo%20%3D%3E%20(%0A%20%20%3CTodo%20%7B...todo%7D%20key%3D%7Btodo.id%7D%20%2F%3E%0A))%7D%0A%20%20%20%20%0A%2F%2F%E5%8F%8D%E4%BE%8B%0A%7Btodos.map((todo%2C%20index)%20%3D%3E%0A%20%20%3CTodo%7B...todo%7D%20key%3D%7Bindex%7D%20%2F%3E%0A)%7D%0A%60%60%60%0A%23%23%23%23%23%209%E3%80%81%E4%BD%BF%E7%94%A8ref%E7%9A%84%E5%9B%9E%E8%B0%83%0A%60%60%60html%0A%2F%2F%E6%AD%A3%E4%BE%8B%0A%3CFoo%20ref%3D%7B(ref)%20%3D%3E%20%7B%20this.myRef%20%3D%20ref%3B%20%7D%7D%20%2F%3E%0A%20%20%20%20%0A%2F%2F%E5%8F%8D%E4%BE%8B%0A%3CFoo%20ref%3D%22myRef%22%2F%3E%0A%60%60%60%0A%0A%23%23%23%23%23%2010%E3%80%81%E6%B8%B2%E6%9F%93%E4%B8%8E%E5%88%A4%E6%96%AD%E9%80%BB%E8%BE%91%E5%88%86%E5%BC%80%0A%60%E5%9C%A8render%E4%B8%AD%E5%8F%AA%E8%BF%9B%E8%A1%8C%E9%A1%B5%E9%9D%A2%E7%9A%84%E6%B8%B2%E6%9F%93%EF%BC%8C%E4%B8%8D%E4%BD%9C%E5%AF%B9%E6%95%B0%E6%8D%AE%E6%88%96%E8%80%85%E9%80%BB%E8%BE%91%E7%9A%84%E5%A4%84%E7%90%86%60%0A%0A%23%23%23%23%23%2011%E3%80%81%E8%A7%A3%E6%9E%84%0A%60%60%60javascript%0A%2F%2F%20%E5%8F%8D%E4%BE%8B%20%20%0Aconst%20splitLocale%20%3D%20locale.split('%E2%80%91')%3B%20%20%0Aconst%20language%20%3D%20splitLocale%5B0%5D%3B%20%20%0Aconst%20country%20%3D%20splitLocale%5B1%5D%3B%20%0A%0A%2F%2F%20%E6%AD%A3%E4%BE%8B%20%20%0Aconst%20%5Blanguage%2C%20country%5D%20%3D%20locale.split('%E2%80%91')%3B%0A%60%60%60%0A%0A%23%23%23%23%23%2012%E3%80%81%E4%BC%A0%E5%85%A5%E7%9A%84%E5%8F%98%E9%87%8F%0A%E5%AF%B9%E6%89%80%E6%9C%89%E5%AE%9A%E4%B9%89%E7%9A%84%E6%88%96%E8%80%85%E4%BC%A0%E5%85%A5%E7%9A%84%E5%8F%98%E9%87%8F%EF%BC%8C%E9%83%BD%E8%BF%9B%E8%A1%8C%E9%BB%98%E8%AE%A4%E8%AE%BE%E7%BD%AE%E6%88%96%E8%80%85%E5%88%A4%E5%AE%9A%E6%98%AF%E5%90%A6%E4%B8%BAundefined%EF%BC%8C%E9%98%B2%E6%AD%A2%E6%95%B0%E6%8D%AE%E6%9C%AA%E5%AE%9A%E4%B9%89%E6%97%B6%E7%A8%8B%E5%BA%8F%E6%8A%A5%E9%94%99%E3%80%82%0A%60%60%60javascript%0A%2F%2F%20%E5%8F%8D%E4%BE%8B%20%20%0AonChange(value%20%3D%3E%20console.log(value.name))%20%20%0A%2F%2F%20%E5%8F%8D%E4%BE%8B%20%20%0AonChange((value)%20%3D%3E%20%7B%20%20%20%0A%20%20%20%20if%20(!value)%20%7B%0A%20%20%20%20%20%20%20%20%20%20value%20%3D%20%7B%7D%0A%20%20%20%20%7D%20%20%20%20%0A%20%20%20%20console.log(value.name)%20%20%0A%7D)%20%20%0A%2F%2F%20%E6%AD%A3%E4%BE%8B%20%20%0AonChange((value%20%3D%20%7B%7D)%20%3D%3E%20console.log(value.name))%20%20%0A%2F%2F%20%E6%AD%A3%E4%BE%8B%20%20%0AonChange(value%20%3D%3E%20console.log(value%3F.name))%0A%60%60%60%0A%EF%A5%A7%E8%A6%81%E4%BF%A1%E4%BB%BB%E4%BB%BB%E4%BD%95%E5%9B%9E%E8%B0%83%E5%87%BD%E6%95%B0%E7%BB%99%E4%BD%A0%E7%9A%84%E5%8F%98%EF%A5%BE%EF%BC%8C%E5%AE%83%E4%BB%AC%E9%9A%8F%E6%97%B6%E5%8F%AF%E8%83%BD%E6%98%AF%20undefined%20%EF%BC%8C%E4%BD%BF%E7%94%A8%E5%88%9D%E5%A7%8B%E5%80%BC%E6%98%AF%E4%B8%AA%EF%A5%A7%E9%94%99%E7%9A%84%E9%80%89%E6%8B%A9%EF%BC%8C%E4%BD%86%E6%9C%89%E7%9A%84%E6%97%B6%E5%80%99%E5%88%9D%E5%A7%8B%E5%80%BC%E6%B2%A1%EF%A7%BD%E4%B9%88%E6%84%8F%20%E4%B9%89%EF%BC%8C%E4%BD%BF%E7%94%A8%60%20%3F.%60%E8%AF%AD%E6%B3%95%E5%8F%AF%E4%BB%A5%E5%AE%89%E5%85%A8%E7%9A%84%E8%AE%BF%E9%97%AE%E5%B1%9E%E6%80%A7%0A%0A%23%23%23%23%23%2013%E3%80%81%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%98%E9%87%8F%0A%60%60%60javascript%0A%2F%2F%E5%8F%8D%E4%BE%8B%0Alet%20newslist%20%3D%20this.props.newslist%3B%0Alet%20b%20%3D%20a%20%20%2F%2F%20a%E4%B8%BA%E6%95%B0%E7%BB%84%0A%0A%2F%2F%E6%AD%A3%E4%BE%8B%20%0Alet%20%7B%20newslist%20%3D%20%5B%5D%20%7D%20%3D%20this.props%3B%0Alet%20b%20%3D%20a%20%7C%7C%20%5B%5D%3B%0A%60%60%60