前端 面试题 js(1)

本文深入解析JavaScript中的关键概念,包括数据类型、this关键字、闭包原理及数组、字符串操作方法,为前端开发者提供全面的技术指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,js中有哪些数据类型?

    简单数据类型:undefined    null   Boolean      Number     string   

    复杂数据类型(引用):object

2,说说你对this的理解?

     this是一个关键字,它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。

     (1)作为纯粹的函数调用this指向全局对象(js在浏览器中的全局对象是window对象)

     (2)作为对象的方法调用this指向调用对象

     (3)作为构造函数被调用this指向新的对象(new会改变this的指向)

     (4)apply调用this指向apply方法的第一个参数

3,什么是闭包?

        简单的说,作用域是针对变量的,比如我们创建一个函数a1,函数里面又包了一个子函数a2,此时就存在三个作用域。

       全局作用域,a1作用域,a2作用域;即全局作用域包含了a1的作用域,a2的作用域包含了a1的作用域。

       当a1在查找变量的时候会先从自身的作用域查找,找不到再到上一级a2的作用域查找,如果还没找到就到全局作用域区查找,这样就形成了一个作用域链。

       理解闭包首先要理解,js垃圾回收机制,也就是当一个函数被执行完后,其作用域会被收回,如果形成了闭包,执行完后其作用域就不会被收回。

       如果某个函数被他的父函数之外的一个变量引用,就会形成闭包。

       闭包的作用,就是保存自己私有的变量,通过提供的接口(方法)给外部使用,但外部不能直接访问该变量。

4,js中数组方法?

  常用14种

  (1)增删改

            增  push(尾部)               unshift(头部)

            删  pop  (尾部)               shift(头部)

            改 splice(替换数组)

  (2)查 (都是返回找到的第一个的位置)

          indexof(从前到后找)                      lastIndexof(从后到前找)

   (3)截取,拼接

          slice(start【,end】)                                     concat

    (4)数组转字符串

          toString()                       join()

     (5)翻转        排序

            Reverse ()                                sort()

      (6)遍历

            forEach()        map()//对元素重新组装,生成新数组。

            Every()         //所有都符合

            some()         //至少一个符合

            filter()           //过滤

5,字符串方法?

(1)charAt()        获取字符串的第n位

(2)charCodeAt(index)      //   返回指定位置的字符的Unicode编码

(3)lastIndexof            //返回某个指定的字符串值在字符串中最后出现的位置(从右往左查找)

(4)Indexof(str)      //返回某个指定的字符串值在字符串中首次出现的位置(从左往右查找)

(5)slice(start,end) //end小于start不会执行

                                          //负数,从右往左开始,第一位是-1

(6)Substr(start,length)

(7)SubString(start,end)  //会自己判断两个参数大小

(8)toLowerCase  (转小写)

(9)toUpperCase(转大写)

(10)trim()  //去掉首尾空格

(11)Repeat(n) //字符串重复几遍

(12)split()  //根据字符串分割成数组

               str.split('').reverse().join('');//字符串翻转

(13)concat    连接字符串

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值