相关知识点

数据类型、运算、对象、function、继承、闭包、作用域、原型链、事件、RegExp、JSON、Ajax、DOM、BOM、内存泄漏、跨域、异步加载、模板引擎、前端MVC、前端MVVM、路由、模块化、Http、Canvas、jQuery、ECMAScript 2015(ES6)、Node.js、AngularJS、Vue、React......

题目&答案

  • documen.write和 innerHTML的区别

    document.write只能重绘整个页面
    innerHTML可以重绘页面的一部分
  • 浏览器检测通过什么?

    (1) navigator.userAgent
    (2) 不同浏览器的特性,如addEventListener
  • JavaScript有哪几种数据类型?

    简单,Number,Boolean,String,Null,Undefined
    复合,Object,Array,Function
  • 截取字符串“abcdefghi”的“fghi”

    var myvalue=”abcdefghi”;
    var jiequ=myvalue.substring(myvalue.length-4,myvalue.length);
    alert(jiequ);

    -写出下面的运算结果

    alert(typeof(null)); // object
    alert(typeof(undefined)); // undefined alert(typeof(NaN)); // number alert(NaN==undefined); // false alert(NaN==NaN); // false var str="123abc"; alert(typeof(str++)); // number alert(str);// NaN
  • 问执行完毕后 x, y, z 的值分别是多少?

    var x = 1, y = z = 0;
    function add(n) { n = n+1; } y = add(x); function add(n) { n = n + 3; } z = add(x); 1、undefined、undefined
  • 如何阻止事件的冒泡?

    //阻止冒泡的方法
    function stopPP(e) { var evt = e|| window.event; //IE用cancelBubble=true来阻止而FF下需要用stopPropagation方法 evt.stopPropagation ?evt.stopPropagation() : (evt.cancelBubble=true); }
  • 写出程序运行的结果?

    for(var i=0, j=0; i<10, j<6; i++, j++){ k = i + j; } 10
  • 编写一个方法 求一个字符串的字节长度

    /*假设:一个英文字符占用一个字节,一个中文字符占用两个字节*/
    function getBytes(str){ var len = str.length, bytes = len, i = 0; for(; i<len; i++){ if (str.charCodeAt(i) > 255) bytes++; } return bytes; } alert(getBytes("玩,as"));
  • JavaScript中如何对一个对象进行深度clone?

    function cloneObject(o) {
    if(!o || 'object' !== typeof o) { return o; } var c = 'function' === typeof o.pop ? [] : {}; var p, v; for(p in o) { if(o.hasOwnProperty(p)) { v = o[p]; if(v && 'object' === typeof v) { c[p] = Ext.ux.clone(v); } else { c[p] = v; } } } return c; };
  • 如何控制alert中的换行?

    \n alert(“p\np”);
  • 请编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象,如:
    var url = “http://witmax.cn/index.php?key0=0&key1=1&key2=2″;

    function parseQueryString(url){
    var params = {}, arr = url.split("?"); if (arr.length <= 1) return params; arr = arr[1].split("&"); for(var i=0, l=arr.length; i<l; i++){ var a = arr[i].split("="); params[a[0]] = a[1]; } return params; } var url = "http://witmax.cn/index.php?key0=0&key1=1&key2=2", ps = parseQueryString(url); console.log(ps["key1"]);
  • 如何控制网页在网络传输过程中的数据量?

    启用GZIP压缩
    保持良好的编程习惯,避免重复的CSS,JavaScript代码,多余的HTML标签和属性
  • 以下代码运行结果

    function say() {
    // Local variable that ends up within closure var num = 888; var sayAlert = function() { alert(num); } num++; return sayAlert; } var sayAlert = say(); sayAlert();//889
  • 请实现ECMAScript 5中的Object.getPrototypeOf() 函数

    function proto(object) {
    return !object? null : '__proto__' in object? object.__proto__ : /* not exposed? */ object.constructor.prototype }
  • 如何实现Array.prototype.forEach?

    if (!Array.prototype.forEach) {
    Array.prototype.forEach = function(fn){ for ( var i = 0; i < this.length; i++ ) { fn( this[i], i, this ); } }; } ["a", "b", "c"].forEach(function(value, index, array){ assert( value, "Is in position " + index + " out of " + (array.length - 1) ); });
  • 如何将arguments转为数组?

    Object.prototype.slice.call(arguments);
  • 以下程序运行结果?

    var ninja = function myNinja(){
    alert(ninja == myNinja);
    };
    ninja();
    myNinja();
    true、报错(error - myNinja is not defined.)
  • 如何获取光标的水平位置?

    function getX(e){
    e = e || window.event; //先检查非IE浏览器,在检查IE的位置 return e.pageX || e.clentX + document.body.scrollLeft; }
  • 兼容浏览器的获取指定元素(elem)的样式属性(name)的方法

    function getStyle(elem, name){
    if(elem.style[name]){//如果属性存在于style[]中,直接取 return elem.style[name]; } else if(elem.currentStyle){//否则 尝试IE的方法 return elem.currentStyle[name]; }//尝试W3C的方式 else if(document.defaultView && document.defaultView.getComputedStyle){ name = name.replace(/([A-Z])/g, "-$1");//W3C中为textAlign样式,转为text-align name = name.toLowerCase(); var s = document.defaultView.getComputedStyle(elem, ""); return s && s.getPropertyValue(name); }else{ return null; } }
  • Javascript中实现类似PHP的print_r函数

    function print_r(theObj) {var retStr = ''; if(typeof theObj == 'object') { retStr += '<div style="font-family:Tahoma; font-size:7pt;">'; for(var p in theObj) { if (typeof theObj[p] == 'object') { retStr += '<div><b>['+p+'] => ' + typeof(theObj) + '</b></div>'; retStr += '<div style="padding-left:25px;">' + print_r(theObj[p]) + '</div>'; } else { retStr += '<div>['+p+'] => <b>' + theObj[p] + '</b></div>'; } } retStr += '</div>'; } return retStr; }
  • 以下程序运行结果?

    var b = parseInt("01");
    alert("b="+b);
    var c = parseInt("09/08/2009"); alert("c="+c); b=1、c=0。
  • 以下程序的运行结果?

    var foo = 'hello';
    (function() { var foo= foo || 'world'; console.log(foo); })(); world
  • 前端开发有哪些优化问题?

    减少http请求次数:cssspirit,data uri
    JS,CSS源码压缩
    前端模板JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数
    用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能
    用setTimeout来避免页面失去响应
    用hash-table来优化查找
    当需要设置的样式很多时设置className而不是直接操作style
    少用全局变量
    缓存DOM节点查找的结果
    避免使用CSS Expression
    图片预载
    避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢
  • AJAX请求总共有多少种CALLBACK?

    Ajax请求总共有八种Callback
    onSuccess
    onFailure
    onUninitialized
    onLoading
    onLoaded
    onInteractive
    onComplete
    onException
  • 请给出异步加载js方案,不少于两种

    异步加载方式:
    defer,只支持IE
    async:
    创建script,插入到DOM中,加载完毕后callBack,见代码:
    function loadScript(url, callback){ var script = document.createElement("script") script.type = "text/javascript"; if(script.readyState){ //IE script.onreadystatechange = function(){          if (script.readyState == "loaded" ||script.readyState == "complete"){ script.onreadystatechange = null; callback(); } }; } else { //Others: Firefox, Safari, Chrome, and Opera script.onload = function(){ callback(); }; } script.src = url; document.body.appendChild(script); }

转载于:https://www.cnblogs.com/Han-org/p/6416449.html

前端开发面试题-JavaScript(二)相关推荐

  1. 前端开发面试题—JavaScript原型链

    在JavaScript面向对象中,原型链是一个很重要的知识点,经常出现在大大小小的面试题中,关于原型链的面试题有很多问法和知识点.今天主要分享一下我遇到的一个关于原型链的面试题.问题很简单,什么是原型 ...

  2. 前端开发面试题—JavaScript冒泡排序

    今天分享一下我遇到的一个关于JavaScript冒泡排序的面试题,题目是笔试题目,要求用JavaScript手写一个冒泡排序,倒序输出新的数组.其实难度不大,就是太久没手写代码在纸上了,感觉有点奇怪( ...

  3. 自己整理的前端开发面试题

    前端开发面试题 文章目录 前端开发面试题 JavaScript面试题 1-JavaScript数据类型 基本类型 引用类型 null和undefined的区别 ES10新增BIgInt表示任意大的整数 ...

  4. 前端开发面试题总结之——JAVASCRIPT(一)

    ___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...

  5. 前端开发面试题及答案整理

    前端开发面试题及答案整理 文章目录 一些开放性题目 position的值, relative和absolute分别是相对于谁进行定位的? 如何解决跨域问题 XML和JSON的区别? 谈谈你对webpa ...

  6. いろいろな%前端开发面试题% 读后感

    本文主要记录一些针对常见前端面试问题的个人见解和知识扩展 Edited by Yiyi at 2016/08/15 题目一:有一个高度自适应的div,里面有两个div,一个高度100px,希望另一个填 ...

  7. 2014年最新web前端开发面试题

    2014年最新web前端开发面试题 本文是一份非常不错的2014年web前端开发工程师的面试题集锦,并附有参考答案,推荐大家参考下. 试题目录: HTML 部分 CSS 部分 JavaScript 部 ...

  8. web前端开发面试题(九)

    前端开发面试题第九天 一.HTML 部分 1.1 对语义化标签的理解 在学习HTML阶段的最后,我们会涉及到学习语义化标签,明明用div等标签就可以构成页面,那么为什么还会有语义化标签的存在? 语义化 ...

  9. 前端开发面试题(转载)

    原文地址 前端开发面试题 前言 本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误 ...

  10. 【理论面试篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题...

    ##2017.10.30收集 面试技巧 5.1 面试形式 1)        一般而言,小公司做笔试题:大公司面谈项目经验:做地图的一定考算法 2)        面试官喜欢什么样的人 ü  技术好. ...

最新文章

  1. Hessian源码分析(java)
  2. 洞察|一图看懂AI新基建如何落地
  3. 【android9.0】system/core下的usbhost模块无法输出log到logcat
  4. 简明python教程 --C++程序员的视角(二):函数及作用域
  5. 【Python】urllib爬取动漫图片
  6. 世界500强高频逻辑推理智力面试题(一)
  7. mysql 组复制 不一致_使用MySQL组复制的限制和局限性
  8. EasyPoi 的样式使用及其自定义
  9. 构建之法阅读笔记(1)
  10. html文件实践总结,html,css学习实践总结
  11. C++设计模式——Composite 组合模式
  12. ComBox 绑定数据库
  13. 【线性模型引论】王松桂著 课后习题2.2参考答案
  14. xp升级windows7_试验机之液压万能试验机升级改造全国招商-机械设备-招商
  15. PandoraBox(OpenWrt)配置(做为二级交换机方法)
  16. DS1302的电子万年历_51单片机,年月日、星期、时分秒、农历和温度,带闹钟,全套资料
  17. 15款好用的web开源安全测试工具等你来
  18. python输出今天的日期和今天的日期时间
  19. Spring Boot 容器镜像分层构建
  20. 搭建日志服务器 rsyslog

热门文章

  1. 经典机器学习系列(十二)【学习排序】
  2. 什么是迁移学习?它都用在深度学习的哪些场景上?
  3. 矩阵分解:奇异值分解(SVD)详解
  4. 升级centos6.8内核
  5. [转]Microsoft SQL Server Management Studio Express 使用SQL验证登录sa
  6. sp_configure
  7. glog学习(二):glog主要接口和类分析
  8. lombok的详细使用
  9. 转liunx 常用命令
  10. Oracle数据导入导出imp/exp sp2-0734:未知的命令开头'imp...解决方法