1.js 定义方法
fuanction a := function(){}
var a () = function{}
var string:a = (){}

2.正则里的$描述正确的是
匹配字符串的结束

3.let [a,b,c,d,e] = 'hello'
a=h b=e c=l d=l e=o

4.h5的web储存对象
sessionStorage
localStorage

5.当Html页面加载完毕时触发的事件
onLoad

6.CSS3中,能使用div的宽度变化有2秒的过渡效果的属性是
tansition

7.描述一下脚本放在和放到底部的区别
html渲染执行的顺序为从上到下的一个执行顺序,首先第一步执行head中的内容,如果有外联样式,则下载外联样式,如果有script标签,那么浏览器的渲染引擎则停止,交给JavaScript引擎执行,执行完毕之后将权力交给浏览器渲染。执行完head中的内容之后再执行body中的内容,遇到script标签则停止渲染,再次将执行权交给JavaScript引擎,head中样式在下载完毕后会重新渲染html的所有内容。

所以从上面可以看出,在head中使用script标签可能会导致DOM元素还没有加载,在script中就获取了DOM元素,那么就会出现获取不到元素的情况,如果是在body底部加载的话,那么此时的DOM元素已经全部渲染完毕,可以正常获取DOM元素

8.请使用Promise封装Ajax操作
function PromiseAjax() {
return new Promise((resolve, reject) => {
var req = newXMLHttpRequest();
req.open("POST", "www.baidu.com", true);

    req.onload = function(){
        if(req.readyState === 4&& req.status === 200){
            resolve(req.response)
        } else{
            reject(req.statusText)
        }
  }
  req.onerror = function(){
      reject(Error("网络异常"))
  }
})

}

PromiseAjax().then(res => {}).catch(err => {})

9.js  数据类型 
1.基本数据类型,String Number Boolean null undefiend  symbol 
2.复杂数据类型 Function Object

10.以下结果里,返回 `false` 的是?
1.[] === true  [] number 转为 0 true 转为1 都做了隐式转换  [] 
注:[] 转字符串 “”
       [] 转Boolean 为 true
2.Nan 不等于 任何  包括 自身 

11.下面这段JS程序的执行结果是:
1
2
3
4
var a =[1,2,3];
var b = a.slice();
b.push(4);
console.log(a) // 123
知识括展 
基本数据类型存在栈中
引用数据类型存在堆中
引用数据类型是存放在堆内存中的对象,变量趋势是保存在栈中一个指针(保存的是堆内存中的引用地址),这个指针指向堆内存
引用类型的数据在栈内存中保存的实际上是对象在堆中内存的引用地址,通过这个引用地址可以快速查找到保存堆中的对象。
var obj = new Object() var obj2 = obj obj2.name = '小仙女' console.log(obj.name) // 小仙女

12.var str1=new RegExp("e");
document.write(str1.exec("hello")); //
e
exec() 方法是一个正则表达式方法。
exec() 方法用于检索字符串中的正则表达式的匹配。
该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
本题的exec执行结果是一个数组,但是使用了document.write,所以显示在html中的内容是数组中的元素,即e

js还有一个test()方法,用于检测字符串是否匹配某个模式,返回值为boolean
console.log(str1.test("hello")) // true