日常整理系列——笔试刷题00005

1)编写一个函数判断参数是否是数组类型,如果是返回 true

解题思路:

  • typeof只能识别原始类型,它无法对function和object类型做进一步判断。
  • 验证原型对象: var bool = obj.__proto__.constructor.name == 'Array' ? true: false;
  • 验证实例: var bool = (obj instance of Array);
  • 检查内部属性class:Object.prototype.toString.call(obj);
  • 检查数组的专有方法:Array.isArray(obj); 

答案:其中方法四和方法二必须掌握

方法一:

function isArray(arg) {
    return (arg instanceof Array);
}

方法二:

function isArray(arg) {
    return Object.prototype.toString.call(arg) == '[object Array]' ? true: false;
}

方法三:

function isArray(arg) {
    return arg.__prototype__.constructor.name == "Array"? true: false;
}

方法四:

function isArray(arg) {
    return Array.isArray(arg);
}

2)一般和后端API服务通信的方式有哪些?POST提交的时候,content-type有哪几种

答案:和后端API服务通信的方式有

  1. ajax
  2. websocket
  3. SSE
  4. 服务器端渲染

POST方式下,content-type常见的有四种

  1. application/x-www-form-urlencoded
  2. application/json
  3. multipart/form-data
  4. text/xml

3) 哪些对象有length属性,举例说明。

Window.length                    //返回当前窗口中frames的数量(包括iframes)
String.length                      //返回字符串中的字符数目
Function.length                   //获取一个函数定义的参数数目
Array.length                         //返回数组中元素的数目

4)IE支持的属性和方法

IE的所有事件对象都支持的方法和属性:

  • cancelBubble 默认为false,设置为true就可以取消事件冒泡
  • returnValue默认为true,设置为false就可以取消事件的默认行为
  • SRCElement对于生成事件的window对象、document对象或element对象的引用
  • type被触发事件的类型

DOM事件的方法(IE的事件模型不支持):

  • initEvent() 初始化新创建的event对象的属性
  • preventDefault() 通知浏览器不要执行与事件关联的默认动作
  • stopPropagation() 不再派发事件

5)预编译css工具

css预编译工具有stylus,sass,less。
为什么会出现预编译器这个东西呢?这就要谈到css的不足之处了:没有变量(新的规范已经支持了),不支持嵌套,编程可以离较弱,代码复用性差。这些不足导致写出来的css维护性极差、于是css预编译器应运而生,且他们离不开三剑客:stylus,sass,less。
最先登场的是sass。也是最完善的,有各种丰富的功能。
less的出现伴随着bootstrap的流行,因为也取得大量用户使用。
最后出现的是stylus,室友TJ大神开发,特点是简单的语法,写起来很cool

6) 写一个js函数,返回一个字符串:今天星期几(几由当天的确定日期为准)

function myWeek(){
    var weeks = ['一','二','三','四','五','六','七'];
    return '今天是星期'+weeks[new Date().getDay()];
}

猜你喜欢

转载自blog.csdn.net/PINGER0077/article/details/83020134
今日推荐