zoukankan      html  css  js  c++  java
  • js面试题

    数组属性

    
    

    数组常用方法

    
    

    数组去重

    
    

    String 对象方法

    
    

    创建对象的方式

    Object构造函数创建
    使用对象字面量表示法 var Person = {};``//相当于var Person = new Object();其实1和2是一种
    使用工厂模式创建对象
    使用构造函数创建对象
    原型创建对象模式
    组合使用构造函数模式和原型模式
    

    js执行机制

    
    

    数组最常用遍历方法

    
    

    js继承的方式

    原型链继承
    借用构造函数继承
    组合继承(组合原型链继承和借用构造函数继承)(常用)
    原型式继承
    寄生式继承
    寄生组合式继承(常用)
    

    闭包

    什么是闭包
    
    函数和函数内部能访问到的变量(也叫环境)的总和,就是一个闭包。
    闭包的特点
    
    声明在一个函数中的函数,函数嵌套函数,叫做闭包函数
    函数内部可以引用外部的参数和变量
    参数和变量不会被垃圾回收机制回收
    闭包的用途
    
    主要是为了设计私有的变量和方法,可以避免全局变量的污染,方便调用上下文的局部变量 加强封装性
    主要可以访问其他函数内部变量
    保护变量不被内存回收机制回收
    闭包的缺点
    
    增大内存的使用量,常驻内存,,使用不当会造成内存泄漏
    曾经的需求
    
    如果你调用一个对象里的函数,并且函数里再返回一个函数,返回值有this,此时this就指向了window,可以利用闭包特性,因为父级函数的this指向该对象,在父级函数里定义一个that=this,this就会指向该对象而不会指向window了,也可以使用箭头函数解决
    创建自定义函数的时候,基本都要有传参,传参和返回的函数就构成了闭包 (取值和排序)
    解决闭包造成的内存泄露
    
    在退出函数之前,将不使用的局部变量全部删除。可以使变量赋值为null;
    
    这段代码会导致内存泄露
       window.onload = function(){
           var el = document.getElementById("id");
           el.onclick = function(){
               alert(el.id);
           }
       }
       解决方法为
       window.onload = function(){
           var el = document.getElementById("id");
           var id = el.id;                                      //解除循环引用
           el.onclick = function(){
               alert(id); 
           }
           el = null;                                          // 将闭包引用的外部函数中活动对象清除
       }
       
    避免变量的循环赋值和引用
    

    递归

    
    

    变量的作用域

    变量在函数外定义,即为全局变量,全局变量就是在页面内都可以调用的变量,全局变量有 全局作用域: 网页中所有脚本和函数均可使用
    变量在函数内声明,只能在函数内部访问,变量为局部作用域,
    

    简述同步和异步的区别

    所有任务可以分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)。同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有等主线程任务执行完毕,"任务队列"开始通知主线程,请求执行任务,该任务才会进入主线程执行。
    
    https://blog.csdn.net/qq_22855325/article/details/72958345
    
    同步的概念应该是来自于OS中关于同步的概念:不同进程为协同完成某项工作而在先后次序上调整(通过阻塞,唤醒等方式).同步强调的是顺序性.谁先谁后.异步则不存在这种顺序性.
    
    同步:浏览器访问服务器请求,用户看得到页面刷新,重新发请求,等请求完,页面刷新,新内容出现,用户看到新内容,进行下一步操作。
    
    异步:浏览器访问服务器请求,用户正常操作,浏览器后端进行请求。等请求完,页面不刷新,新内容也会出现,用户看到新内容。
    

    写一个函数,清除字符串前后的空格(兼容所有浏览器)

    function trim(str) {
        if (str && typeof str === "string") {
            return str.replace(/(^\s)|(\s)$/g,""); //去除前后空白符
        }
    }
    

    this指向

    
    

    避免按钮多次点击请求ajax

    
    

    原型及原型链

    
    

    添加,移除,移动,复制,创建,查找节点

    
    

    线程和进程的区别

    
    

    获取浏览器url中查询字符串的参数

    
    

    js字符串函数

    
    

    如何确定一个变量时不是字符串类型

    
    

    比较typeof和instanceof

    
    

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

    
    

    documentload和documentready区别

    
    

    js中typeof放回的数据类型

    
    

    事件绑定和普通事件区别

    
    

    如何给ajax请求的数据绑定事件

    
    

    列举三种强制类型转换和两种隐式转换

    
    

    jQuery中$.bind(),$.on(),$.live()的异同点

    
    

    jQuery中callback的作用

    
    

    jQuery将变量对象转化成json字符串的方法

    
    

    创建dom的几种方式 优劣点

    
    

    Base64

    
    

    事件冒泡-事件捕获-事件委托

    
    
  • 相关阅读:
    给TextView底部添加横线
    app支付宝授权登录获取用户信息
    java 面试题整理
    mybatis中app的查询语句
    mybatis 存储过程的写法
    mybatis中存储过程的调用
    字符串替换
    网站收藏
    liunx+mysql数据库管理
    缓存的介绍
  • 原文地址:https://www.cnblogs.com/ycyc123/p/15732501.html
Copyright © 2011-2022 走看看