欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JS基础篇02

程序员文章站 2022-03-18 18:49:38
...

第五讲 函数

写一个获取非行间样式的函数

/**
 *获取非行内样式
 *
 * @param {element} ele 需要获取样式的元素
 * @param {string} attr 获取的样式属性名
 * @returns
 */
function getCss(ele,attr){
    if(!ele.currentStyle){
        return getComputedStyle(ele)[attr];
    }else{
        return ele.currentStyle[attr];
    }
}

 

说说你对作用域链的理解?

函数执行时会产生私有作用域,函数内部的函数执行又会产生一个子级作用域,这样一级一级形成作用域链的关系。函数内部使用变量时,先从当前作用域查找,如果没有,就逐级向上级作用域查找,一直找到全局作用域,如果没有就报错。

 

var x=1,y=z=0;
function add(n){n=n+1};y=add(x);
function add(x){n=n+2};z=add(x);
console.log(x,y,z);

1 undefined undefined

函数重名,最后变量都会覆盖函数,并且函数内部并没有返回值

 

请解释变量提提升(预解析)?

js代码运行之前,会先进行预解析

找到var的变量提前声明,先不赋值;找到function,声明并且赋值

函数内部预解析:①先进行函数作用域内部的预解析(var ,形参 ,function) ②形参赋值  ③从上往下执行代码

 

函数声明和函数表达式声明的区别?

函数声明预解析,声明并赋值,可以在创建之前调用

表达式声明,只声明变量不会赋值,不能在创建之前调用

 

Javascript两种变量范围有什么不同?

全局变量:直接声明在全局作用域的变量,在任何地方都能访问

私有变量:在函数内部声明的变量,私有变量在函数以外不能访问,函数的形参也是私有变量

 

 

第六讲  定时器与函数封装

定时器的分类?他们的区别及用法是什么?

//等待一段时间,执行一段代码,只执行一次
setTimeout(function(){},间隔时间)
//每隔一段时间执行一个函数,反复运行
setInterval(function(){},间隔时间)

 

 

第七讲 时间对象&字符串对象

js有哪些内置对象?

 

 

把下面的字符串去重,并去掉特殊字符按照数字在前字母在后的顺序排序字符串,如下:‘1233fddfd&3434fdsa&454545&4545444rfdsfd&545gdsgs’

 

 

截取字符串‘abcdefg’中的def。

 

 

有这样一个url:http://item.taobao.com/item?a=1&b=2&c=&d=xxx&e,请写一段js程序提取url中各个get参数(参数名和参数个数不确定),将其key-value形式返回到一个json结构中,如{a:'1',b:'2',c:'',d:'xxx',e:undefined}

 

 

判断一个字符串中出现次数最多的字符,并且统计次数。