js面试题

发布时间:2023年12月20日

1、JS中如何检测数据类型?

  • typeof?检测基本数据类型
typeof 42 返回 "number"
typeof "hello" 返回 "string"
typeof true 返回 "boolean"
typeof undefined 返回 "undefined"
typeof function() {} 返回 "function"
  • instanceof ?只能检测复杂数据类型?
var arr = [];
arr instanceof Array; // 返回 true
  • ?Object.prototype.toString 方法来获取更精确的类型信息
Object.prototype.toString.call([]); // 返回 "[object Array]"
  • ?使用 Array.isArray 方法来检测是否为数组类型
Array.isArray([]); // 返回 true
  • ?constructor可以检测出字面量方式创建的 对象类型,因为字面方式创建,实际由对应类创建而出
var num = 42;
num.constructor === Number; // 返回 true

2 ?JS如何做垃圾回收的?

1、标记清楚:通过全局 标记所有从全局出发能够访问到的对象,不能够访问到的对象未被标记
2、引用计数:容易造成内存泄漏

3 ?git常用命令

git init 初始化 git项目
git add ?文件(.)添加到暂存区
git commit -m '信息' 记录到仓库区
git status 查看文件状态
git log 查看所有历史版本信息
git log --oneline 简介信息
git log --hard 版本号 切换到指定版本
git reflog(查看完整历史)
git reset回退某个版本

git branch 分支名 -> 创建分支
git branch -> 查看分支
git branch -a?
git checkout 分支名 -> 切换分支
git checkout -b创建+切换分支
git branch -m 旧分支 新分支名 git ->重命名分支
git merge 分支名->合并分支
git branch -d 分支名-> 删除分支
?

4、webpack有哪些 loader、plugin,分别什么作用?

  • babel语法降级
  • loader作用是解析非js文件
  • plugin作用是增强webpack

5、 es6模块化语法 10


导出模块: 使用 export 关键字将模块中的变量、函数或类导出

// 导出变量
export const name = 'Alice';

// 导出函数
export function sayHello() {
    console.log('Hello!');
}

// 导出类
export class Person {
    constructor(name) {
        this.name = name;
    }
}

导入模块: 使用 import 关键字导入其他模块中导出的内容

// 导入单个变量、函数或类
import { name, sayHello, Person } from './moduleA';

// 导入整个模块
import * as moduleA from './moduleA';


? ?6、?CSS3新特性??

  1. Flexbox 布局: 弹性盒子布局模型,用于更灵活地布局元素。

  2. Grid 布局: 网格布局模型,用于创建复杂的多列布局。

  3. 过渡(Transitions)和动画(Animations): 用于在元素状态变化时实现平滑的过渡效果和动画效果。

  4. 媒体查询(Media Queries): 用于根据设备特性(如屏幕宽度、高度、方向等)调整页面样式。

  5. 自定义字体(@font-face): 允许网页设计者使用自定义字体。

  6. 阴影和圆角(Box-shadow 和 Border-radius): 用于创建元素的阴影效果和圆角效果。

  7. 多列布局(Multi-column Layout): 用于创建多列文本布局。

  8. 变形(Transforms)和过滤(Filters): 用于对元素进行旋转、缩放、倾斜等变形操作,以及应用图像效果

7、 webpack配置文件书写

简写:

module.exports = {
  entry: path.resolve(__dirname, 'src/main.js'),
  // 出口
  output: {  
  },
  //配置设置  相当于拷贝一份
  plugins: [
  ],
  
  //模块 style
  module: { 
  },
  //配置路径
  resolve: {
   
  }

文章来源:https://blog.csdn.net/2302_79245293/article/details/135044975
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。