阿里国际 ae 1面

2024.9.12

阿里国际 ae 一面

1、问题:请至少写 4 种 CSS 方案实现元素垂直和水平居中

<div class="box center1 center2">
	<div class="inner inner3">33</div>
</div>

<style>
	.box {
		width: 200px;
		height: 200px;
	}
	.inner {
		width: 50px;
		height: 50px;
	}

	.center1 {
		text-align: center;
		/* 比较新的css支持 */
		align-content: center;
	}

	.center2 {
		display: flex;
		/* grid 也可以 */
		align-items: center;
		justify-content: center;
	}

	.center3 {
		display: relative;
	}
	.inner3 {
		display: absolute;
		top: 0;
		right: 0;
		left: 0;
		bottom: 0;
		margin: auto;
	}

	.center4 {
		display: relative;
	}
	.inner4 {
		display: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
	}
</style>

2、问题:下面代码输出为 true 的是?

A. console.log([] === []);B. console.log(undefined == 0);C. console.log(undefined == false);D. console.log(false == '');

D, 没问题

3、问题:以下哪项可以去除变量 str 中的所有空格

A. str.replace(/\s*/g,"")B. str.replace(/^\s|\s$/g,"")C. str.replace(/^\s*/, "")D. str.replace(/(\S*$)/g, "")

A,没问题

4、问题:请回答以下代码执行结果

console.log('同步代码 1')

setTimeout(() => {
	console.log('setTimeout')
}, 0)

new Promise((resolve) => {
	console.log('同步代码 2')
	resolve()
}).then(() => {
	console.log('promise.then')
})

console.log('同步代码 3')

<!-- 同步代码1 --><!-- 同步代码2 --><!-- 同步代码3 --><!-- promise.then --><!-- setTimeout -->

5、问题:请回答点击 content 后以下代码的执行结果

<div id="box1">
	<div id="box2">content</div>
</div>
<script>
	const $ = document.querySelector.bind(document)
	const box1 = $('#box1')
	const box2 = $('#box2')
	box1.addEventListener(
		'click',
		() => {
			console.log('box1 true')
		},
		true,
	)
	box1.addEventListener(
		'click',
		() => {
			console.log('box1 false')
		},
		false,
	)

	box2.addEventListener(
		'click',
		() => {
			console.log('box2 true')
		},
		true,
	)
	box2.addEventListener(
		'click',
		() => {
			console.log('box2 false')
		},
		false,
	)
</script>

<!-- box2 false -->

错了,重复注册不会被覆盖,会都执行,正确的后面看看

6、问题:请回答以下 TS 代码的执行结果。如果有错误 请描述出来。

var user = {
	level: null,
	level1: 0,
}
var level1 = user.level ?? '暂无等级' // 暂无等级
var level2 = user.other_level ?? '暂无等级' // 暂无等级
var level3 = user.level1 ?? '暂无等级' // 0
console.log(level1, level2, level3)

var num = 2 ** 3
console.log(num)

// 暂无等级 暂无等级 0// 8

分析没问题,但是 level2 应该是报错

7、问题:请修改以下代码,在控制台中每隔 1s 打印数组中的一个元素,直到最后一个元素打印完成

var arr = [1, 2, 3, 4, 5]

for (var i = 0; i < arr.length; i++) {
	setTimeout(function () {
		console.log(arr[i])
	}, 1000)
}

var arr = [1, 2, 3, 4, 5]

for (let i = 0; i < arr.length; i++) {
	setTimeout(function () {
		console.log(arr[i])
	}, 1000)
}

有点问题,1000 也应该处理一下,不然都是一次性打印出来了

8、问题:如何在 setInterval 中读取最新的 count 值? 如何让 num 可以递增?

import { useEffect, useState } from 'react'

export default function App() {
	const [num, setNum] = useState(0)
	const [count, setCount] = useState(0)

	useEffect(() => {
		setCount(1)
		setInterval(() => {
			console.log(count)
			setNum(num + 1)
		}, 500)
	}, [])

	console.log('num:', num)
	return null
}

import { useEffect, useState } from 'react'

export default function App() {
	const [num, setNum] = useState(0)
	const [count, setCount] = useState(0)

	useEffect(() => {
		setCount(1)
		setInterval(() => {
			// setCount接受的变量直接传给下面这个
			console.log(count)
			setNum((num) => num + 1)
		}, 500)
	}, [])

	console.log('num:', num)
	return null
}

没啥问题

9、问题:如何实现以下方法调用

add(1, 2)(3) //6;
add(1)(2, 3) //6;

const add = (a, b, c) => a + b + c

const curry = (fn) => {
	const newFn = (...rest) => {
		if (rest.length >= fn.length) {
			return fn(...rest)
		} else {
			return (...newRest) => newFn(...rest, ...newRest)
		}
	}
	return newFn
}

const curriedAdd = curry(add)
curriedAdd(1, 2)(3) //6;
curriedAdd(1)(2, 3) //6;

柯里化,没啥问题,问了我想写 js 实现还是算法,选的 js 实现后出的这一题

全部评论
佬,是不是打电话过来,钉钉面的,没发邮件
点赞 回复 分享
发布于 2024-09-15 19:30 福建

相关推荐

Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
05-23 20:31
已编辑
武汉大学 Java
内向的柠檬精在研究求...:注意把武大标粗标大 本地你俩不是乱杀
实习进度记录
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 12:31
以前小时候我最痛恨出轨、偷情的人,无论男女,为什么会出轨?现在我成了自己最讨厌的人,没想到分享的东西在牛客会被这么多人看,大家的评价都很中肯,我也认同,想过一一回复,但我还是收声了,我想我应该说说这件事,这件事一直压在我心里,是个很大的心结,上面说了人为什么出轨,我大概能明白了。我们大一下半年开始恋爱,开始恋爱,我给出了我铭记3年的承诺,我对她好一辈子,我永远不会背叛,我责任心太重,我觉得跟了我,我就要照顾她一辈子,我们在一起3年我都没有碰过她,她说往东我就往东,她说什么我做什么,她要我干什么,我就干什么!在学校很美好,中途也出过一些小插曲,比如男闺蜜、男闺蜜2号等等等。但我都强迫她改掉了,我...
牛客刘北:两个缺爱的人是没有办法好好在一起的,但世界上哪有什么是非对错?你后悔你们在一起了,但是刚刚在一起的美好也是真的呀,因为其他人的出现,你开始想要了最开始的自己,你的确对不起自己,21岁的你望高物远,你完全可以不谈恋爱,去过你想要的生活,你向往自由,在一起之后,你要想的不是一个人,而是两个人,你不是变心了,就像你说的,你受够了,你不想包容了,冷静几天是你最优的选择,爱人先爱己。
社会教会你的第一课
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务