js面试题

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: {
   
  }

你可能感兴趣的:(javascript,开发语言,ecmascript)