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

Posted 每天都在慢慢进步的王同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端—每天5道面试题(十四)相关的知识,希望对你有一定的参考价值。

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

每天进步1% 不多 就1%

在这里插入图片描述
在这里插入图片描述

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

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

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

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

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

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

二、用原生 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 表示”缺少值”,就是此处应该有一个值,但是还没有定义。

以上是关于前端—每天5道面试题(十四)的主要内容,如果未能解决你的问题,请参考以下文章

前端—每天5道面试题

前端—每天5道面试题

前端—每天5道面试题

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

前端小小白—每日5道面试题打卡(十五)

前端—每日5道面试题打卡(十六)