前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2023 想进 BAT 的快来,20 道JavaScript必须要面对的面试题(中)

2023 想进 BAT 的快来,20 道JavaScript必须要面对的面试题(中)

作者头像
用户1418987
发布2023-10-16 09:47:28
1740
发布2023-10-16 09:47:28
举报
文章被收录于专栏:coder
2023 想进 BAT 的快来,20 道JavaScript必须要面对的面试题(中)_html
2023 想进 BAT 的快来,20 道JavaScript必须要面对的面试题(中)_html

JavaScript 面试问答 (2023) – 中级

在本文中,您将学习面试中最常见的JavaScript面试问题和答案。在继续学习 JavaScript 面试问题和答案 - 中级之前,首先我们学习完整的 JavaScript https://s.juejin.cn/ds/ie92pj5x/

1. JavaScript 中所有的循环结构是什么?
  • while 循环**:**while 循环 是一个控制流语句,它允许根据给定的布尔条件重复执行代码。while 循环可以被认为是重复的 if 语句。
  • for 循环**:**for 循环提供了一种编写循环结构的简洁方法。与 while 循环不同,for 语句在一行中使用初始化、条件和递增/递减,从而提供更短、易于调试的循环结构。
  • do while:do-while循环类似于 while 循环,唯一的区别是它在执行语句后检查条件,因此是退出控制循环的一个示例。
2. 如何更改元素的样式/类?

要更改元素的样式/类,有两种可能的方法。我们使用document.getElementByID方法

代码语言:javascript
复制
document.getElementById("myText").style.fontSize = "16px;
document.getElementById("myText").className = "class";
3. 解释如何使用 JavaScript 读取和写入文件?
  • readFile()函数用于读取操作。
代码语言:javascript
复制
readFile( Path, Options, Callback)
  • writeFile() 函数用于写入操作。
代码语言:javascript
复制
writeFile( Path, Data, Callback)
4. JavaScript 中什么叫变量类型?

变量类型是用于存储数字并使用相同的变量分配“字符串”的变量类型

代码语言:javascript
复制
Geeks = 42;
Geeks = "GeeksforGeeks";
5. 如何在 JavaScript 中将任何基数的字符串转换为整数?

在 JavaScript 中,parseInt() 函数用于将字符串转换为整数。此函数返回一个 base 整数,该整数在 parseInt() 函数的第二个参数中指定。parseInt() 函数在字符串不包含数字时返回 Nan(不是数字)。

2023 想进 BAT 的快来,20 道JavaScript必须要面对的面试题(中)_字符串_02
2023 想进 BAT 的快来,20 道JavaScript必须要面对的面试题(中)_字符串_02
6. 说明如何检测客户端计算机上的操作系统?

要检测客户端计算机上的操作系统,只需使用 navigator.appVersion 或 navigator.userAgent 属性即可。属性是一个只读属性,它返回表示浏览器的版本信息的字符串。

7. JavaScript 中可用的弹出框有哪些类型?

JavaScript 中有三种类型的弹出框可用。

  • alert
  • confirm
  • Prompt
8. 警报框和确认框有什么区别?

alert框将仅显示一个按钮,即“确定”按钮。它是用来通知用户必须同意的协议。但是“confirm”框显示两个按钮“确定”和“取消”,用户可以在其中决定是否同意。

2023 想进 BAT 的快来,20 道JavaScript必须要面对的面试题(中)_html_03
2023 想进 BAT 的快来,20 道JavaScript必须要面对的面试题(中)_html_03
9. 在 JavaScript 中使用 innerHTML有什么缺点?

在 JavaScript 中使用 innerHTML 有很多缺点,因为内容会在任何地方替换。如果你使用+=,比如“innerHTML = innerHTML + 'html'”,旧内容仍然会被HTML替换。它保留附加到任何 DOM 元素的事件处理程序。

10.void(0) 有什么用?

void(0) 用于调用另一个方法,而不在调用时间内刷新页面,参数“零”将被传递。

11. 什么是 JavaScript Cookie?

Cookie 是存储在用户计算机上的小文件。它们用于保存特定于特定客户端和网站的适量数据,并且可以由 Web 服务器或客户端计算机访问。当 cookie 被发明时,它们基本上是包含有关您和您的偏好的信息的小文档。例如,当您选择要查看网站的语言时,该网站会将信息保存在您计算机上称为 cookie 的文档中,下次您访问该网站时,它将能够读取之前保存的 cookie。

12.如何使用 JavaScript 创建 Cookie?

要使用 JavaScript 创建 cookie,您只需将字符串值分配给 document.cookie 对象

代码语言:javascript
复制
document.cookie = "key1 = value1; key2 = value2; expires = date";
13. 如何使用JavaScript读取cookie?

document.cookie的值用于创建 cookie。每当您想访问 cookie 时,都可以使用该字符串。document.cookie 字符串保留一个用分号分隔的名称 = 值对的列表,其中 namecookie 的名称,值是其字符串值

14. 如何使用 JavaScript 删除 Cookie?

删除 cookie 比创建或读取 cookie 要容易得多,您只需要设置 expires = “过去的时间”并确保一件事定义了正确的 cookie 路径,除非很少有人允许您删除 cookie。

15. 什么是转义字符和转义()函数?
  • 转义字符:如果要使用一些特殊字符(如单引号和双引号、撇号和与号),则此字符是必需的。所有特殊字符在 JavaScript 中都起着重要作用,要忽略它或打印该特殊字符,您可以使用转义字符**反斜杠“\”。**它通常会忽略并表现得像正常角色一样。
代码语言:javascript
复制
// Need escape character
document.write("demo: A Computer Science Portal "for demo" ")
document.write("demo: A Computer Science Portal \"for demo\" ")
  • escape() 函数: escape() 函数将字符串作为参数并对其进行编码,以便它可以传输到任何支持 ASCII 字符的网络中的任何计算机。
16. JavaScript 是否有概念级范围?

JavaScript 不是概念级的作用域,在任何函数中声明的变量在函数内部都有作用域。

17. 如何在 JavaScript 中创建通用对象?

要在 JavaScript 中创建通用对象,请使用:

代码语言:javascript
复制
var I = new object();
18. 哪些关键字用于处理异常?

执行 JavaScript 代码时,几乎肯定会发生错误。这些错误可能是由于程序员方面的错误,由于输入错误,或者即使程序的逻辑有问题,也可能发生这些错误。但是所有错误都可以通过使用以下命令来解决。

  • try 语句允许您测试代码块以检查错误。
  • catch 语句允许您处理错误(如果存在)。
  • throw 语句允许您犯自己的错误。
19. 模糊查找功能有什么用?

它用于从所选元素中删除焦点。此方法启动模糊事件,也可以附加到函数以在发生模糊事件时运行。

20.JavaScript 中的 unshift 方法是什么?

它用于在数组的前面插入元素。它就像在数组开头插入元素的push方法

2023 想进 BAT 的快来,20 道JavaScript必须要面对的面试题(中)_字符串_04
2023 想进 BAT 的快来,20 道JavaScript必须要面对的面试题(中)_字符串_04
代码语言:javascript
复制
'use strict'
const path = require('path')
const CompressionPlugin = require('compression-webpack-plugin')// 引入gzip压缩插件
const defaultSettings = require('./src/settings.js')

function resolve(dir) {
  return path.join(__dirname, dir)
}

const name = defaultSettings.title || 'vue Element Admin' // page title

// If your port is set to 80,
// use administrator privileges to execute the command line.
// For example, Mac: sudo npm run
// You can change the port by the following method:
// port = 9527 npm run dev OR npm run dev --port = 9527
const port = process.env.port || process.env.npm_config_port || 9527 // dev port

const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin')

// All configuration item explanations can be find in https://cli.vuejs.org/config/
module.exports = {
  /**
   * You will need to set publicPath if you plan to deploy your site under a sub path,
   * for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/,
   * then publicPath should be set to "/bar/".
   * In most cases please use '/' !!!
   * Detail: https://cli.vuejs.org/config/#publicpath
   */
  publicPath: '/',
  outputDir: 'dist',
  // assetsDir: '../../static/admin',
  // assetsDir: '/',
  lintOnSave: false, // process.env.NODE_ENV === 'development',
  productionSourceMap: false,
  devServer: {
    port: port,
    open: false,
    overlay: {
      warnings: false,
      errors: true
    }
  },
  configureWebpack: {
    plugins: [
      new CompressionPlugin({
        algorithm: 'gzip',
        test: /\.js$|\.html$|\.css/, // 匹配文件名
        threshold: 10240, // 对超过10kb的数据进行压缩
        deleteOriginalAssets: false, // 是否删除原文件
        minRatio: 0.8
      }),
      new MonacoWebpackPlugin()
    ],
    name: name,
    resolve: {
      alias: {
        '@': resolve('src')
      }
    }
  },
  chainWebpack(config) {
    config.plugins.delete('preload') // TODO: need test
    config.plugins.delete('prefetch') // TODO: need test

    config.module
      .rule('svg')
      .exclude.add(resolve('src/icons'))
      .end()
    config.module
      .rule('icons')
      .test(/\.svg$/)
      .include.add(resolve('src/icons'))
      .end()
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({
        symbolId: 'icon-[name]'
      })
      .end()

    // set preserveWhitespace
    config.module
      .rule('vue')
      .use('vue-loader')
      .loader('vue-loader')
      .tap(options => {
        options.compilerOptions.preserveWhitespace = true
        return options
      })
      .end()

    config
      .when(process.env.NODE_ENV === 'development',
        config => config.devtool('cheap-source-map')
      )

    config
      .when(process.env.NODE_ENV !== 'development',
        config => {
          config
            .plugin('ScriptExtHtmlWebpackPlugin')
            .after('html')
            .use('script-ext-html-webpack-plugin', [{
            // `runtime` must same as runtimeChunk name. default is `runtime`
              inline: /runtime\..*\.js$/
            }])
            .end()
          config
            .optimization.splitChunks({
              chunks: 'all',
              cacheGroups: {
                libs: {
                  name: 'chunk-libs',
                  test: /[\\/]node_modules[\\/]/,
                  priority: 10,
                  chunks: 'initial' // only package third parties that are initially dependent
                },
                elementUI: {
                  name: 'chunk-elementUI', // split elementUI into a single package
                  priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
                  test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
                },
                commons: {
                  name: 'chunk-commons',
                  test: resolve('src/components'), // can customize your rules
                  minChunks: 3, //  minimum common number
                  priority: 5,
                  reuseExistingChunk: true
                }
              }
            })
          config.optimization.runtimeChunk('single')
        }
      )
  },
  css: {
    loaderOptions: {
      less: {
        modifyVars: {
          // less vars,customize ant design theme

          // 'primary-color': '#F5222D',
          // 'link-color': '#F5222D',
          'border-radius-base': '2px'
        },
        // DO NOT REMOVE THIS LINE
        javascriptEnabled: true
      }
    }
  }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JavaScript 面试问答 (2023) – 中级
    • 1. JavaScript 中所有的循环结构是什么?
      • 2. 如何更改元素的样式/类?
        • 3. 解释如何使用 JavaScript 读取和写入文件?
          • 4. JavaScript 中什么叫变量类型?
            • 5. 如何在 JavaScript 中将任何基数的字符串转换为整数?
              • 6. 说明如何检测客户端计算机上的操作系统?
                • 7. JavaScript 中可用的弹出框有哪些类型?
                  • 8. 警报框和确认框有什么区别?
                    • 9. 在 JavaScript 中使用 innerHTML有什么缺点?
                      • 10.void(0) 有什么用?
                        • 11. 什么是 JavaScript Cookie?
                          • 12.如何使用 JavaScript 创建 Cookie?
                            • 13. 如何使用JavaScript读取cookie?
                              • 14. 如何使用 JavaScript 删除 Cookie?
                                • 15. 什么是转义字符和转义()函数?
                                  • 16. JavaScript 是否有概念级范围?
                                    • 17. 如何在 JavaScript 中创建通用对象?
                                      • 18. 哪些关键字用于处理异常?
                                        • 19. 模糊查找功能有什么用?
                                          • 20.JavaScript 中的 unshift 方法是什么?
                                          领券
                                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档