|  | @@ -0,0 +1,83 @@
 | 
	
		
			
				|  |  | +<!DOCTYPE html>
 | 
	
		
			
				|  |  | +<html lang="en">
 | 
	
		
			
				|  |  | +<head>
 | 
	
		
			
				|  |  | +    <meta charset="UTF-8">
 | 
	
		
			
				|  |  | +    <meta http-equiv="X-UA-Compatible" content="IE=edge">
 | 
	
		
			
				|  |  | +    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
	
		
			
				|  |  | +    <title>rest</title>
 | 
	
		
			
				|  |  | +</head>
 | 
	
		
			
				|  |  | +<body>
 | 
	
		
			
				|  |  | +    <script>
 | 
	
		
			
				|  |  | +        /**
 | 
	
		
			
				|  |  | +         * 值唯一
 | 
	
		
			
				|  |  | +         * 不能运算
 | 
	
		
			
				|  |  | +         * 不能使用for in,可以使用reflect.ownkeys
 | 
	
		
			
				|  |  | +         */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +         //创建symbol
 | 
	
		
			
				|  |  | +         let s = Symbol()
 | 
	
		
			
				|  |  | +         console.log(s,typeof s)  //Symbol() "symbol"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +         let s1 = Symbol('chuck')  //描述字符串
 | 
	
		
			
				|  |  | +         let s2 = Symbol('chuck')  //描述字符串
 | 
	
		
			
				|  |  | +         console.log(s1)   //Symbol(chuck)
 | 
	
		
			
				|  |  | +         console.log(s1 === s2)  //false
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +         let s3 = Symbol.for('chuck')  //函数对象
 | 
	
		
			
				|  |  | +         let s4 = Symbol.for('chuck')
 | 
	
		
			
				|  |  | +         console.log(s3,typeof s3)  //Symbol(chuck) "symbol"
 | 
	
		
			
				|  |  | +         console.log(s3 === s4) // true
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +         //不能运算 否则报错
 | 
	
		
			
				|  |  | +         //let result = s + 100;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +         //数据类型
 | 
	
		
			
				|  |  | +         //USONB   you are so niubility
 | 
	
		
			
				|  |  | +         /**
 | 
	
		
			
				|  |  | +          * undefined
 | 
	
		
			
				|  |  | +          * string
 | 
	
		
			
				|  |  | +          * object
 | 
	
		
			
				|  |  | +          * null 
 | 
	
		
			
				|  |  | +          * symbol
 | 
	
		
			
				|  |  | +          */
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        //symbol 使用场景
 | 
	
		
			
				|  |  | +        //给对象添加方法 up down -- 可以很安全的加入方法
 | 
	
		
			
				|  |  | +        let game = { }
 | 
	
		
			
				|  |  | +        let methods = {
 | 
	
		
			
				|  |  | +            up: Symbol(),
 | 
	
		
			
				|  |  | +            down: Symbol()
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        game[methods.up] = function(){}
 | 
	
		
			
				|  |  | +        game[methods.down] = function(){}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //2
 | 
	
		
			
				|  |  | +        let cc = {
 | 
	
		
			
				|  |  | +            name : 'chuck',
 | 
	
		
			
				|  |  | +            [Symbol('say')]:function(){}
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // symbol 内置属性 共11个
 | 
	
		
			
				|  |  | +        /**
 | 
	
		
			
				|  |  | +         * hasInstance
 | 
	
		
			
				|  |  | +         * match
 | 
	
		
			
				|  |  | +         * replace
 | 
	
		
			
				|  |  | +         * isConcatSpreadable 
 | 
	
		
			
				|  |  | +         */
 | 
	
		
			
				|  |  | +        class Person{
 | 
	
		
			
				|  |  | +            //自动执行
 | 
	
		
			
				|  |  | +            static [Symbol.hasInstance](param){
 | 
	
		
			
				|  |  | +                console.log(param)  //{d:2}
 | 
	
		
			
				|  |  | +                console.log('检测')
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        let o = {d:2}
 | 
	
		
			
				|  |  | +        console.log(o instanceof Person)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        const arr = [1,2,3]
 | 
	
		
			
				|  |  | +        const arr1 = [4,5,6]
 | 
	
		
			
				|  |  | +        arr1[Symbol.isConcatSpreadable] = false;//不可展开 合并
 | 
	
		
			
				|  |  | +        console.log(arr.concat(arr1))
 | 
	
		
			
				|  |  | +    </script>
 | 
	
		
			
				|  |  | +</body>
 | 
	
		
			
				|  |  | +</html>
 |