Q1:JavaScript包含哪些数据类型,请分别写出3种以上类型的判断函数如:isString()?
//js有6种数据类型(5种基本数据类型、1种复杂数据类型)
1.String字符串; 2.Number数字; 3.Boolean布尔; 4.Null空对象指针; 5.Undefined没有定义
6.Object对象;
7.Function函数; 8.Array数组;
//isString(str)
① typeof 'str' === "string"
② Object.prototype.toString.call('str') === "[object String]"
③ String('str') === 'str'
//isNumber(num)
方法一:!isNaN(parseFloat(1)) && isFinite(1)
方法二:typeof 1 === "number" && !isNaN(1)
方法三:typeof 1 === "number" && isFinite(1)
方法四:Object.prototype.toString.call(1) === "[object Number]"
方法五:1 === +1
//isBoolean(b)
① Object.prototype.toString.call(true) === "[object Boolean]"
② typeof false === "boolean"
//isNull(null)
① Object.prototype.toString.call(null) === "[object Null]"
② typeof null === "object"
//isUndefined()
① Object.prototype.toString.call() === "[object Undefined]"
② typeof a === "undefiend"
//isObject(obj)
① Object.prototype.toString.call({}) === "[object Object]"
② typeof {} === "object"
//isFunction(func)
① Object.prototype.toString.call(function(){}) === "[object Function]"
② typeof funciton(){} === "function"
//js固有函数
③ Object.prototype.toString.call(clear) === "[object Function]"
③ typeof clear === ”function“
//isArray(arr)
① Object.prototype.toString.call([]) === "[object Array]"
② typeof [] === "object"
Q2:编写一个JavaScript函数,实时显示当前时间,格式"年-月-日 时-分-秒"?
setInterval(function(){
var time = new Date(),
yyyy = time.getFullYear(),
M = time.getMonth()+1,
d = time.getDate(),
h = time.getHours(),
m = time.getMinutes(),
s = time.getSeconds(),
MM = M<10?('0'+M):M,
dd = d<10?('0'+d):d,
hh = h<10?('0'+h):h,
mm = m<10?('0'+m):m,
ss = s<10?('0'+s):s;
var now = yyyy+'-'+MM+'-'+dd+' '+hh+':'+mm+':'+ss;
console.log(now);
},1000)
//ES6
Q3:如何显示/隐藏一个DOM元素?
//js
document.getElementById("text").style.display="none"
//jQuery
$('.a').hide(1000); $('.a').show(5000); $('.a').toggle(1000)
$('.a').addClass('hide'); $('.a').removeClass('hide'); $('.a').toggleClass('hide')
//vue
<div v-if="a">demo1</div>
<div v-if="{hide:a}">demo2</div>
data层改变a的布尔值
Q4:如何添加html元素的事件处理,有几种方法?
...
Q5:如何控制alert中的换行?
// 关于alert的内容还行问题,参考了很多人的意见,在这里我做一个总结,当然我们平时只要使用一种能达到效果的方法即可:
// 这个与使用的浏览器也有关系
// 在使用alert弹窗过程中,对于大部分浏览器,只要遇到字符串 添加 “\n” 即可实现换行,有些浏览器则可能添加 “\r\n” ,如下:
<script type="text/javascript">
alert('hello \n world!');
alert('Hello \r\n Javascript!');
alert('\t这句话应\t\n'); // alert 的换行居中显示
</script>
Q6:判断一个字符串中出现次数最多的字符,统计这个次数?
// 判断一个字符串中出现次数最多的字符,统计这个次数
const str = 'goodboyy';
const maxObj = Mmax(str);
console.log(maxObj);
function Mmax(str) {
const obj = {}; // 去重之后的对象,{char:'g',num:1}
const max = { char: '', num: 0 }; // 最大次数的字符
for (let i = 0; i < str.length; i++) {
if (obj[str[i]]) {
++obj[str[i]];
} else {
obj[str[i]] = 1;
}
if (obj[str[i]] > max.num) {
max.num = obj[str[i]];
max.char = str[i];
}
}
return {
str,
obj,
max,
};
}
Q7:判断字符串是否是这样组成的:第一个必须是字母,后面可以是字母、数字、下划线、总长度为5-30?
/^[a-zA-Z]\w{4,29}$/.test('d5342345') // true
Q8:请编写一个JavaScript函数parseQueryString,它的用途是把URL参数解析为一个对象,如:var url = "xxx.com/index.html?key0=0&key1=1&key2=2"
var url = "http://www.taobao.com/index.php?key0=0&key1=1&key2=2.............";
var obj = parseQueryString(url);
function parseQueryString(argu){
var str = argu.split('?')[1];
var result = {};
var temp = str.split('&');
for(var i=0; i<temp.length; i++)
{
var temp2 = temp[i].split('=');
result[temp2[0]] = temp2[1];
}
return result;
}
Q9:在页面中有如下html,要求用闭包方式写一个js从文本框中取出值并在标签span中显示出来?
<div id="field">
<input type="text" value="user name">
</div>
<span class="red"></span>
Q10:在IE6.0下面是不支持position:fixed的,请写一个js使用<div id="box"></div>固定在页面的右下角?
...
Q11:请实现鼠标到页面中的任意标签,显示出这个标签的基本矩阵轮廓?
...
Q12:js的基本对象有哪些,window和documnet的常用方法和属性列出来?
...
Q13:JavaScript中如何对一个对象进行深度clone?
...
Q14:js中如何定义class,如何扩展prototype?
// 思路:
// JS中定义class是通过function,有点类似C++语言中的struct概念。要定义class只需要定义function,并注意this的使用。
function MyClass() {
this.a = '2';// 可以通过this定义属性
}
MyClass.prototype.say = function () { // 扩充方法
return 'hello';
};
MyClass.prototype.mValue = '3';// 扩充属性
var mc = new MyClass();
alert(mc.a);
alert(mc.say());
alert(mc.mValue);
Q15:ajax是什么?ajax的交互模型?同步和异步的区别?如何解决跨域问题?
...
Q16:请给出异步加载js方案,不少于两种?
...
Q17:多浏览器检测通过什么?
...
Q18:讲述一个你所了解的前端开发的优化方式?
...
网友评论