- 输出下面代码的结果
var a = b = {x: 1};
var a.x = a = {x: 1};
console.log(a);
console.log(b);
var a=1;
function outer(){
var a = 2;
function inner(){
a++;
console.log(a);
var a = 3;
console.log(a);
}
inner()
}
outer()
var x=1;
var Kit = {
x:2,
buf: {
x:3,
fac: function() {
return this.x;
}
}
}
var kbf = Kit.buf.fac;
console.log(kbf());
console.log(Kit.buf.fac())
function Foo(){
var i=0;
return function(){
console.log(i++)
}
}
var f1 = Foo(),f2 = Foo();
f1();
f1();
f2();
(function(){
var a=b=3;
})();
console.log(typeof a);
console.log(typeof b);
function Timer(){
this.s1 = 0;
this.s2 = 0;
setInterval(()=>this.s1++, 1000);
setInterval(function(){this.s2++;}, 1000);
}
var timer = new Timer();
setTimeout(()=>console.log('s1:', timer.s1), 3100);
setTimeout(()=>console.log('s2:', timer.s2), 3100);
function test(p){
p.age = 24;
p = {
name: 'hhh',
age: 10
}
return p
}
const p1 = {name: 'www', age: 20}
const p2 = test(p1)
console.log(p1);
console.log(p2);
- 用js判断一个字符串是否是回文字符串
function palind1(str) {
let newStr = str.toLowerCase();
for(let i=0,len=Math.floor(str.length/2);i<len;i++){
if(newStr[i] !== newStr[str.length-1-i])
return false
}
return true
}
function palind2(str) {
let newStr = str.toLowerCase();
let len = str.length;
for(let i=0,j=len-1;i<j;i++,j--){
if(newStr[i] !== newStr[j])
return false
}
return true
}
- 输出下面代码的结果
var a = 1;
function log(){
a++;
console.log(a);
var a = 2;
console.log(a)
}
log();
- 设计一个function, 实现 从数组中删除重复超过2次的元素。
// 例如 A = [1,1,1,2,2,3],预期 [1,1,2,2,3]
// 例如 A = [1,2,1,2,1,3,2],预期 [1,2,1,2,3]
function delArr(arr){
let newArr = [];
for(var i=0;i<arr.length;i++){
if(strNum(newArr, arr[i]) < 2){
newArr.push(arr[i])
}
}
return newArr
}
function strNum(arr, item){
var index = 0;
for(var i=0;i<arr.length;i++){
if(item == arr[i]){
index += 1;
}
}
return index
}
delArr([1,2,1,2,3,2,1,4,1,5])
- 未知宽高元素水平垂直居中显示的方法
.cell {
display: table-cell;
text-aign: center;
verticle-ailgn: middle;
} //不存在兼容性问题
.flex {
display: flex;
justify-content: center;
align-items: center;
}
.trans {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
- Array的flat实现方式
function transferFlat(arr){
let newArr = []
arr.forEach(item => {
if(Array.isArray(item)){
newArr = newArr.concat(item.flat())
}else {
newArr.push(item)
}
})
return newArr
}
function transferFlat(arr){
return arr.toString().split(',').map(item => +item)
}