摘要:实现布局一个垂直居中其距离屏幕左右两边各其高度始终是宽度的中有文本其文本水平垂直居中经试验其高度始终是宽度的这个没有实现函数中的是数组吗类数组转数组的方法了解一下类数组类型比较都不打印打印错了,知道为什么,但是不知道为啥是在异步代码执行
1. 实现css布局
一个div垂直居中
其距离屏幕左右两边各10px
其高度始终是宽度的50%
div中有文本"A"
其font—size:20px
文本水平垂直居中
A
ps: 经试验 其高度始终是宽度的50% 这个没有实现
2.函数中的arguments是数组吗?类数组转数组的方法了解一下?
arguments类数组
var array = [...arguments]
3.类型比较
if([]==false){console.log(1)};
if({}==false){console.log(2)};
if([]){console.log(3)}
if([1]==[1]){console.log(4)}
都不打印
4.EventLoop
async function a1 () { console.log("a1 start") await a2() console.log("a1 end") } async function a2 () { console.log("a2") } console.log("script start") setTimeout(() => { console.log("setTimeout") }, 0) Promise.resolve().then(() => { console.log("promise1") }) a1() let promise2 = new Promise((resolve) => { resolve("promise2.then") console.log("promise2") }) promise2.then((res) => { console.log(res) Promise.resolve().then(() => { console.log("promise3") }) }) console.log("script end")
打印:
script start
a1 start
a2
a1 end
script end
promise1
promise2
promise2.then
promise3
setTimeout
promise2错了,知道为什么,但是不知道为啥a1 end是在异步代码执行后打印的
5.改正代码,输出0123401234
function a () { for (var i = 0; i < 5; i++) { this.i = i setTimeout(function () { console.log(i) }, 0) console.log(this.i) } } a()
将var改成let 考察闭包
但是好像是错的....为什么改成let会中间出现undefined.....
改成let后:
01234undefined01234
6.手写bind实现
Function.prototype.bind2 = function (context) { var self = this; // 获得bind的参数从第二个参数到最后一个参数 var args = Array.prototype.slice.call(arguments, 1); var fNOP = function () {}; var fBound = function () { // 指bind返回的函数传入的参数 var bindArgs = Array.prototype.slice.call(arguments); // new bind返回的函数,this失效,但传入的参数生效 return self.apply(this instanceof fNOP ? this : context, args.concat(bindArgs)); } // 保证继承,原型链,下面两行代码等同于Object.creater() fbound.prototype = Object.create(this.prototype); fNOP.prototype = this.prototype; fBound.prototype = new fNOP(); return fBound; }
7.看这个图,我的理解是,持续触发事件,每隔一段时间,只执行一次事件,事件节流
function throttle(func, wait) { var context, args; var previous = 0; return function() { var now = +new Date(); context = this; args = arguments; if (now - previous > wait) { func.apply(context, args); previous = now; } } } //调用 元素.onmousemove = throttle(func, 100);
8.从一个无序,不相等的数组中,选取N个数,使其和为M实现算法
算法题凉.....我感觉这道题应该和二叉树有关......
9.一个字典["I", "have", "a", "book", "good"],实现一个函数,判断一个字符串中是否都是出自字典中的,输出true/false
算法题凉.....
笨方法:
var arr = ["I", "have", "a", "book", "good"] var str = "I have a book" function test(str,arr) { return arr.filter(v => str.indexOf(v) !== -1).length === str.split(" ").length }
10.一个长阶梯有n级,可以一次走1级,一次走2级,一共有多少种走法?
function test (n) { if (n === 1) return 1 if (n === 2) return 2 return test(n - 1) + test(n - 2) }
用笨方法做的....先写出来n为1,2,3,4,5时的走法,看出是用递归
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/101335.html
摘要:系列题集系列题集系列题集系列题集系列题集系列题集系列题集随手记几个题目先,权当草稿,如果有朋友帮忙分析下原因,不胜感激,哈哈以前的文章地址是这样的格式,现在变了 从毕业开始切图接触前端,慢慢转向javascript开发...但是,感觉自己的javascript难当大任,基础薄弱。网上面试题集很多,设计HTML/CSS/JS,但其中的问题,如果不是自己亲历,没有被难住,是不会有太深印象的...
摘要:原文链接恰当地学习适合第一次编程和非的程序员持续时间到周前提无需编程经验继续下面的课程。如果你没有足够的时间在周内完成全部的章节,学习时间尽力不要超过周。你还不是一个绝地武士,必须持续使用你最新学到的知识和技能,尽可能地经常持续学习和提高。 原文链接:How to Learn JavaScript Properly 恰当地学习 JavaScript (适合第一次编程和非 JavaSc...
摘要:全局对象是比较特殊的对象。对象类型包括普通对象命名值的无序集合,特殊对象数组带编号值的有序集合,函数。基本数据类型是按值访问的,因为可以操作保存在变量中的实际值。不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。 题目 javascript的数据类型分为两类: 原始类型 和对象类型(又基本类型和引用类型) 原始类型包括:String, Boolean,...
摘要:知道了这些知识看看上面的题目为什么结果是包装对象存取字符串,数字,布尔值的属性时创建用构造函数来创建的临时对象称作包装对象。 来自网络 var s=test;//创建字符串类型变量 s.len=4;//创建包装对象,为包装对象添加属性len //引用完毕,销毁包装对象 console.log(s.len);//创建包装对象,查找其len属性,没有找到,返回undefined ...
var foo = 1; function bar() { foo = 10; return; function foo() {}//声明提前 } bar(); console.log(foo); //为什么是1而不是10 http://segmentfault.com/q/1010000000598752
function bar() { return foo; foo = 10; function foo() {} var foo = 11; } console.log(typeof bar());//function 为什么不是number
阅读 3552·2019-08-30 15:55
阅读 1343·2019-08-29 16:20
阅读 3624·2019-08-29 12:42
阅读 2631·2019-08-26 10:35
阅读 971·2019-08-26 10:23
阅读 3366·2019-08-23 18:32
阅读 828·2019-08-23 18:32
阅读 2845·2019-08-23 14:55