热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前段面试题题目

题目1:a在什么条件下成立vara?if(a1&&a2&&a3){console.log(条件成立)}方法1使用toStringvara{i:0,toSt

题目1:

// a在什么条件下成立
var a = ?
if (a == 1 && a == 2 && a == 3) {console.log('条件成立')
}

方法1

// 使用toString
var a = {i: 0,toString() {return ++this.i;}
}
if (a == 1 && a == 2 && a == 3) {console.log('条件成立')
}

方法2

// 数据劫持实现
var i = 0;
Object.defineProperty(window, 'a', {get() {return ++i;}
})
if (a == 1 && a == 2 && a == 3) {console.log('条件成立')
}

方法3

var a = [1,2,3]
a.toString = a.shift
if (a == 1 && a == 2 && a == 3) {console.log('条件成立')
}

题目2

var x = 20;
var a = {x : 15,fn : function(){var x = 30;return function(){return this.x;};}
};
console.log(a.fn());
console.log((a.fn())());
console.log(a.fn()());
console.log(a.fn()() == (a.fn())());
console.log(a.fn().call(this));
console.log(a.fn().call(a));
//function(){return this.x;}
//20
//20
//true
//20
//15

题目3(同步与异步)

Promise.resolve().then(()=>{console.log('Promise1')setTimeout(()=>{console.log('setTimeout2')},0)
})setTimeout(()=>{console.log('setTimeout1')Promise.resolve().then(()=>{console.log('Promise2')})
},0)
//Promise1 -> setTimeout1 -> Promise2 -> setTimeout2

题目4(同步与异步)

console.log('begin')
setTimeout(()=>{console.log('a');Promise.resolve().then(()=>{console.log('b');setTimeout(()=>{console.log('c');var arr1 = [];console.log(arr1 instanceof Array)});}).then(()=>{console.log('d');});
},0);
console.log('e')

题目5:下面代码,浏览器控制台上会打印什么?

var a = 10;
function foo(){console.log(a)var a = 20;
}
foo()

题目6:如果我们使用let或const代替var,输出是否相同

var a = 10;
function foo(){console.log(a)var a = 20;
}
foo()

题目7:有以下两个函数,定义一个对象使其拥有这两个函数属性。

function mobile(){return 'mobile';
}
function phone(){return 'phone';
}
var a = {};
a.mobile = mobile();
a.phone = phone();
console.log(a);

题目8:(考察了对象变量和堆内存)

var a = {n:10,m:20};
var b = a;
b.n = 30;
console.log(a.n);
console.log(b);

题目9:6、编写一个函数fn(Number n),将数字转为大写输出,如输入123,输出一百二十三。

function fn(n){if(!/^([1-9]\d*)/.test(n)){return &#39;非法数据&#39;;}var unit &#61; &#39;千百十亿千百十万千百十个&#39;;if(n.length > unit.length){return &#39;数据过长&#39;;}var newStr &#61; &#39;&#39;;var nlength &#61; n.length;unit &#61; unit.substr(unit.length - nlength);for(var i &#61; 0; i < nlength; i&#43;&#43;){newStr &#43;&#61; &#39;零一二三四五六七八九&#39;.charAt(n[i]) &#43; unit.charAt(i);}newStr &#61; newStr.substr(0,newStr.length-1);newStr &#61; newStr.replace(/零(千|百|十)/g,&#39;零&#39;).replace(/(零)&#43;/g,&#39;零&#39;).replace(/零(亿|万)/g,&#39;$1&#39;);return newStr;
}
console.log(fn(&#39;205402002103&#39;));

算法考察&#xff1a;


  1. 有36辆自动赛车和6条跑道&#xff0c;没有计时器的前提下&#xff0c;最少用几次比赛可以筛选出最快的三辆赛车&#xff1f;

    首先分为6组跑一次&#xff0c;6次
    A1 A2 A3 A4 A5 A6
    B1 B2 B3 B4 B5 B6

    每组的第一都跑一次&#xff0c; 一共为7次&#xff0c;取前三名&#xff0c;暂定为&#xff08;A1 B1 C1&#xff09;&#xff0c;此时第一名已经定了为A1

    那么其他三个组D组 E组 F组肯定直接被淘汰&#xff0c;因为他们的第一名都跑不进前三&#xff0c;所以不用考虑改组的其他赛车

    接着ABC组缩小范围
    A组 A2 A3 参加比赛&#xff0c;因为只有A1作为参照物&#xff0c;而A1是冠军 所有它俩都机会,A1>A2>A3
    B组 B1 B2 参加比赛&#xff0c;B3跑输 B1 B2 &#xff0c;B1跑输A1,因此B2之后的拿不到前三&#xff0c;A1>B1>B2
    C组 C1 参加比赛&#xff0c;同理&#xff0c;A1>B1>C1

    最后 A2 A3 B1 B2 C1 可以决出前三 &#xff0c;总共为8次

  2. 一面墙&#xff0c;单独工作时&#xff0c;A花18小时砌好&#xff0c;B花24小时&#xff0c;C花30小时&#xff0c;现A, B, C的顺序轮流砌&#xff0c;每人工作1小时换班&#xff0c;完工时&#xff0c;B总共干了多少小时?()
    A. 9小时
    B. 8小时
    C. 7小时
    D. 6小时48分
    在这里插入图片描述


  • 推荐&#xff1a;
  • 添加链接描述
  • 添加链接描述

推荐阅读
  • “在一棵树上进行路径的修改、求极值、求和”乍一看只要线段树就能轻松解决,实际上,仅凭线段树是不能搞定它的。我们需要用到一种貌似高级的复杂算法——树链剖分。  树链,就是树上的路径。剖分, ... [详细]
  • 最近想用js做一个简单的计算器,不过网上的例子好像大部分都是直接从左到右挨个计算,就好像1+2*5,就会先计算1+2,再计算3*5,并没有实现运算符的优先级,这里找到了一种方法实现,来总结一下。不过这 ... [详细]
  • 本文整理了Java中com.baomidou.mybatisplus.plugins.Page.setRecords()方法的一些代码示例,展示了Page. ... [详细]
  • 简单数据结构模板
    一,STL1&amp;gt;STL中数据结构常见操作a.assign(b.begin(),b.begin()+3);b为向量,将b的0~2个元素构成的向量赋给aa.as ... [详细]
  • 在实际开发中,现在安卓端和后台之间的数据交互,一般都是用JSON来传递数据信息。JSON大家一般都比较熟悉。我这边就以实际项目中的后台传过来的情况和大家分析下及如何处理。比如后台返 ... [详细]
  • 题目描述输入整型数组和排序标识,对其元素按照升序或降序进行排序(一组测试用例可能会有多组数据)本题有多组输入,请使用whil ... [详细]
  • 进修JavaScript的原型笔记
    JavaScript的原型(prototype、__proto__、constructor)组织函数:functionFoo(){};实例对象:letf1newFoo;leto1n ... [详细]
  • 下面是一个用openssl实现获取https网页内容的demo,整个流程比较简单,主要封装的API如下staticinthttps_init(http ... [详细]
  • [USACO 2006 November Gold] 玉米地Corn Fields
    题目描述  FarmerJohn新买了一块长方形的牧场,这块牧场被划分成M行N列(1<M<12;1<N<12),每一格都是一块正方形的土地。FJ打 ... [详细]
  • PIMPL 是 C++ 中的一个编程技巧,意思为指向实现的指针。具体操作是把类的实现细节放到一个单独的类中,并用一个指针进行访问 ... [详细]
  •   uni-app开发教程,uni-app实例教程  UNI-APP开发(仿饿)开发课程:进入学习  推荐(免费):uni-app开发教程  文章目录  简介,网 ... [详细]
  • 最近自己做一个工具最后涉及到一个存储成bmp位图的形式,由于这部分并不是整个project的重点我就从网上找了例子改了改,但是目前的问题是有很多时候都是存储的bmp全黑,我也并不知道是怎么回事。 ... [详细]
  • Java中的FileStoregetUsableSpace()方法,带示例 ... [详细]
  • ajax 跨域webapi 最简单的demo(只介绍Get)
    这几天遇到一个nodejs的项目,使用VSCode开发,需要连接数据库的,但是用nodejs连接数据库比较繁琐,需要安装很多 ... [详细]
  • IDEA实用插件Lombok
    LombokLombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。通常,我们所定义的对象和b ... [详细]
author-avatar
侯faulds_534
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有