let value1=Symbol('foo')
console.log(typeof value1);
//结果symbol
let value2=Symbol('foo')
console.log(value1===value2);
//false
const m=new Map([[true,1],[function(){console.log(1);},{}]])
console.log(m.get(true));
//1
console.log(m.has(true));
//true
m.set({name:'jack'},1)
console.log(m.size);
//3
m.clear()
console.log(m.size);
//0
const s=new Set([1,2,3,function(){},true])
console.log(s.size);
//5
s.add(10)
console.log(s.size);
//6
s.forEach(item=>console.log(item))
//1
//2
//3
//f(){}
//true
//10
let a=[...s]
console.log(a);
//[1,2,3,f(){},true,10]
s.clear()
console.log(s.size);
//0
function Person(){}
//定义一个空值
let instance=null
function signPerson(){
if(instance==null){
//在它为空时给他赋一个值,不为空就返回instance
instance=new Person()
}
return instance
}
const p1=signPerson()
const p2=signPerson()
console.log(p1===p2);
//true
class CreatDiv{
//static静态方法,该方法不会被实例继承,可以直接通过类调用
static getInstance(){
if(this.instance==null){
this.instance=new CreatDiv()
}
return this.instance
}
constructor(){
this.instance=null
this.divEle=document.createElement('div')
document.body.appendChild(this.divEle)
}
init(text){
this.divEle.innerHTML=text
}
}
let div1=CreatDiv.getInstance()
div1.init('第一条测试信息')
//页面显示第一条测试信息
let div2=CreatDiv.getInstance()
div2.init('第二条测试信息')
//会覆盖第一条,页面显示第二条测试信息
class Compose{
//定义一个空数组用于装所有执行的函数
constructor(){
this.compose=[]
}
//向数组里添加要执行函数
add(task){
this.compose.push(task)
}
//一个执行任务的方法
execute(){
this.compose.forEach(item=>item.init())
}
}
class Compose{
//定义一个空数组用于装所有执行的函数
constructor(){
this.compose=[]
}
//向数组里添加要执行函数
add(task){
this.compose.push(task)
}
//一个执行任务的方法
execute(){
this.compose.forEach(item=>item.init())
}
}
class GetSay{
init(){
console.log('说话');
}
}
class GetEat{
init(){
console.log('吃饭');
}
}
const c=new Compose()
c.add(new GetSay())
c.add(new GetEat())
c.execute()
//说话
//吃饭
class Subject{
constructor(name){
this.name=name
this.list=[]
}
//添加
add(observer){
this.list.push(observer)
}
//更新
updateMessage(message){
this.list.forEach(item=>item.nodify(this.name+message))
}
}
class Observer{
constructor(name){
this.name=name
}
nodify(message){
console.log(this.name+'接受到'+message);
}
}
const p1=new Observer('zs')
const p2=new Observer('ls')
const p=new Subject('主体')
p.add(p1)
p.add(p2)
p.updateMessage('这是更新信息')
//add.js文件中有以下代码
var x=10;
var add=function(value){
return value+x
}
module.exports=x;
module.exports=add
const example=require('add.js')
console.log(example.x)
//10
console.log(example.add(1))
//11
概念:浏览器应用的规范
const num1=1
const add=function(a,b){
return a+b
}
export {num1,add}
<script type="module">
import {num1,add} from './test2'
console.log(add(num1+10));
</script>