前端—每天5道面试题(十四)

简介: 前端—每天5道面试题(十四)

前端—每天5道面试题(十四)

每天进步1% 不多 就1%

一、JavaScript 是一门什么样的语言,它有哪些特点?

javaScript 一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML网页上使用,用来给HTML网页增加动态功能。JavaScript兼容于ECMA标准,因此也称为ECMAScript

JavaScript基本特点:

1.是一种解释性脚本语言(代码不进行预编译)。

2.主要用来向 HTML(标准通用标记语言下的一个应用)页面添加交互行为。

3.可以直接嵌入 HTML 页面,但写成单独的 js 文件有利于结构和行为的分离。

4.跨平台特性,在绝大多数浏览器的支持下,可以在多种平台下运行(如 Windows、Linux、Mac、

Android、iOS 等)

二、用原生 js 实现一个倒计时项目

左侧输入为大于 0 的整数,单位为毫秒,右侧显示倒计时的时间,间隔是 1000ms,注意小于1000ms 的时间的处理。中间是开始的按钮可以重复点击,重复点击后则从新计算

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <input type="text" id="leftTime" placeholder="请输入 0 以上的整数">
    <button id="btn">开始</button>
    <input type="text" id="rightTime" placeholder="开始倒计时">
    <script>
        var btn = document.getElementById("btn");
        var leftTime = document.getElementById("leftTime");
        var rightTime = document.getElementById("rightTime");
        btn.onclick = function() {
            if (leftTime.value > 0) {
                rightTime.value = leftTime.value
            } else {
                rightTime.value = 1
            }
            var cle = setInterval(function() {
                rightTime.value--;
                if (rightTime.value == 0) {
                    window.clearInterval(cle)
                }
            }, 1000)
        }
    </script>
</body>
</html>

三、BOM 之常用 API ?

  • navigator:window 中封装浏览器属性和配置信息的对象
  • cookieEnabled:识别浏览器是否启用 cookie,返回值 true/false
  • userAgent:保存了浏览器名称和版本的字符串
  • plugins:保存浏览器中所有插件信息的集合,每个 plugin 对象的 name 属性保存了插件的名称
  • screen:保存显示屏信息的对象
  • history:保存窗口的历史记录栈
  • location:指代当前窗口正在访问的 url 地址对象
  • location.href:保存了当前窗口正在访问的 url 地址,设置 href 属性为新 url,会在当前窗口打开新 url
  • location.search():获取 url 上面?后面的参数
  • location.reload():刷新当前页面
  • location.assign(url):设置当前窗口的新 url
  • location.reload(true/false):true —— 无论是否更改,都获取更新;false —— 被修改的页面,重新获 取,未被修改的页面,从缓冲获取
  • 定时器:让程序按指定时间间隔,自动执行任务,任务是所有定时器的核心

四、jquery中attr和prop的区别是什么?

(一)、attr和prop区别?

  • attr 是从页面搜索获得元素值,所以页面必须明确定义元素才能获取值,相对来说较慢。
  • prop是从属性对象中取值,属性对象中有多少属性,就能获取多少值,不需要在页面中显示定义。

(二)、attr和prop怎么选择?

  • 对于 HTML 元素我们自己自定义的 DOM 属性,在处理时,使用 attr 方法。
  • 对于 HTML 元素本身就带有的固有属性,在处理时,使用 prop 方法。

上面的描述也许有点模糊,举几个例子说明一下

<a href="http://www.baidu.com" target="_self" class="btn">百度</a>

这个例子里<a>元素的 DOM 属性有“href、target 和 class",这些属性就是<a>元素本身就带有的属性,也是W3C 标准里就包含有这几个属性,或者说在 IDE 里能够智能提示出的属性,这些就叫做固有属性。处理这些属性时,建议使用 prop 方法。

<a href="#" id="link1" action="delete">删除</a>

这个例子里<a>元素的DOM属性有“href、id和action”,很明显,前两个是固有属性,而后面一个“action”属性是我们自己自定义上去的,<a>元素本身是没有这个属性的。这种就是自定义的DOM属性。处理这些属性时,建议使attr方法。使用prop方法取值和设置属性值时,都会返回undefined值。

<input id="chke1" type="checkbox" />记住密码
<input id="chke2" type="checkbox" checked="checked" />记住密码

像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此需要使用prop方法去操作才能获得正确的结果。

$("#chke1").prop("checked");// false
$("#chke2").prop("checked");// true
$("#chke1").attr("checked"); //undefined
$("#chke2").attr("checked"); //"checked"

五、null 和 undefined 的区别?

  • null 是一个表示”无”的对象,转为数值时为 0;undefined 是一个表示”无”的原始值,转为数值时为 NaN。
  • 当声明的变量还未被初始化时,变量的默认值为 undefined。
  • null 用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。
  • undefined 表示”缺少值”,就是此处应该有一个值,但是还没有定义。


相关文章
|
3月前
|
缓存 前端开发 中间件
[go 面试] 前端请求到后端API的中间件流程解析
[go 面试] 前端请求到后端API的中间件流程解析
|
3天前
|
缓存 前端开发 JavaScript
"面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
13 1
|
2月前
|
Web App开发 前端开发 Linux
「offer来了」浅谈前端面试中开发环境常考知识点
该文章归纳了前端开发环境中常见的面试知识点,特别是围绕Git的使用进行了详细介绍,包括Git的基本概念、常用命令以及在团队协作中的最佳实践,同时还涉及了Chrome调试工具和Linux命令行的基础操作。
「offer来了」浅谈前端面试中开发环境常考知识点
|
3月前
|
存储 XML 移动开发
前端大厂面试真题
前端大厂面试真题
|
14天前
|
Web App开发 JavaScript 前端开发
前端Node.js面试题
前端Node.js面试题
|
3月前
|
存储 前端开发 JavaScript
44 个 React 前端面试问题
【8月更文挑战第18天】
46 2
|
3月前
|
存储 JavaScript 前端开发
2022年前端js面试题
2022年前端js面试题
36 0
|
3月前
|
存储 前端开发 JavaScript
44 个 React 前端面试问题
44 个 React 前端面试问题
|
3月前
|
存储 JavaScript 前端开发
|
3月前
|
Web App开发 存储 缓存