在本文中,您将学习面试中最常见的JavaScript面试问题和答案。在继续学习 JavaScript 面试问题和答案 - 中级之前,首先我们学习完整的 JavaScript https://s.juejin.cn/ds/ie92pj5x/
要更改元素的样式/类,有两种可能的方法。我们使用document.getElementByID方法
document.getElementById("myText").style.fontSize = "16px;
document.getElementById("myText").className = "class";
readFile( Path, Options, Callback)
writeFile( Path, Data, Callback)
变量类型是用于存储数字并使用相同的变量分配“字符串”的变量类型。
Geeks = 42;
Geeks = "GeeksforGeeks";
在 JavaScript 中,parseInt() 函数用于将字符串转换为整数。此函数返回一个 base 整数,该整数在 parseInt() 函数的第二个参数中指定。parseInt() 函数在字符串不包含数字时返回 Nan(不是数字)。
要检测客户端计算机上的操作系统,只需使用 navigator.appVersion 或 navigator.userAgent 属性即可。属性是一个只读属性,它返回表示浏览器的版本信息的字符串。
JavaScript 中有三种类型的弹出框可用。
alert框将仅显示一个按钮,即“确定”按钮。它是用来通知用户必须同意的协议。但是“confirm”框显示两个按钮“确定”和“取消”,用户可以在其中决定是否同意。
innerHTML
有什么缺点?在 JavaScript 中使用 innerHTML 有很多缺点,因为内容会在任何地方替换。如果你使用+=,比如“innerHTML = innerHTML + 'html'”,旧内容仍然会被HTML替换。它保留附加到任何 DOM 元素的事件处理程序。
void(0) 用于调用另一个方法,而不在调用时间内刷新页面,参数“零”将被传递。
Cookie 是存储在用户计算机上的小文件。它们用于保存特定于特定客户端和网站的适量数据,并且可以由 Web 服务器或客户端计算机访问。当 cookie 被发明时,它们基本上是包含有关您和您的偏好的信息的小文档。例如,当您选择要查看网站的语言时,该网站会将信息保存在您计算机上称为 cookie 的文档中,下次您访问该网站时,它将能够读取之前保存的 cookie。
要使用 JavaScript 创建 cookie,您只需将字符串值分配给 document.cookie
对象
document.cookie = "key1 = value1; key2 = value2; expires = date";
document.cookie
的值用于创建 cookie。每当您想访问 cookie 时,都可以使用该字符串。document.cookie 字符串保留一个用分号分隔的名称 = 值对的列表,其中 name 是 cookie 的名称,值是其字符串值。
删除 cookie 比创建或读取 cookie 要容易得多,您只需要设置 expires = “过去的时间”并确保一件事定义了正确的 cookie 路径,除非很少有人允许您删除 cookie。
// Need escape character
document.write("demo: A Computer Science Portal "for demo" ")
document.write("demo: A Computer Science Portal \"for demo\" ")
JavaScript 不是概念级的作用域,在任何函数中声明的变量在函数内部都有作用域。
要在 JavaScript 中创建通用对象,请使用:
var I = new object();
执行 JavaScript 代码时,几乎肯定会发生错误。这些错误可能是由于程序员方面的错误,由于输入错误,或者即使程序的逻辑有问题,也可能发生这些错误。但是所有错误都可以通过使用以下命令来解决。
它用于从所选元素中删除焦点。此方法启动模糊事件,也可以附加到函数以在发生模糊事件时运行。
它用于在数组的前面插入元素。它就像在数组开头插入元素的push
方法
'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
}
}
}
}