JavaScript相关知识点(1)

1.   JS的基本数据类型有哪些?引用类型有哪些?

数据类型:Undefined Null String Number Boolean

引用类型:String Object Date Function Number

2.   什么是冒泡,什么是捕获,什么是事件流?

冒泡:事件由子元素传递到父元素的过程。

捕获:事件由父元素传递到子元素的过程

事件流:当HTML产生一个事件时,该事件会在元素节点与根节点之间的路径传播,路径所经过都会收到该事件,这个传播的过程叫做DOM事件流。

3.   写出continue和break的区别,描述如何跳出指定的循环?

continue:跳过本次循环,接着开始下一次循环;只能在循环语句中使用,fou,while和do...while语句中使用。

break:结束本次循环以及本次之后的循环;只能在循环体内和switch语句中使用。

  1. 列举获取DOM元素的方法

(1).根据签名进行获取,

(2).通过name属性值获取,

(3).通过id值获取,

(4).通过类名获取,

(5).获取一个子元素,通过这个子元素找到其父元素,

(6).获取子元素节点,

  1. 什么是未声明和未定义的变量?

未声明的变量是程序中不存在且未声明的变量,如果程序尝试读取未声明变量的值,则会遇到运行时错误。

未定义的变量是在程序中声明但尚未给出任何值的变量,如果程序尝试读取未定义变量的值,则返回未定义的值。

  1. 写出常用的分支结构和循环结构,写出详细结构?

分支结构:在顺序结构基础上,根据条件进行选择执行方向(根据条件的成立与否,选择执行方向)。

循环结构:在顺序结构基础上,根据条件进行多次执行相同或相似的代码

例:

if分支结构:

语句1;

if(条件表达式){

代码块//条件成立时,执行的逻辑

}

语句2;

注释:执行逻辑:执行完语句1后,碰到if,一定会执行条件表达式,结果为true就执行代码块,然后执行语句2;如果结果为false,则跳过代码块直接执行语句2。

if(条件表达式){

代码块1//条件成立时,执行此代码快

}

else{

代码块2//条件不成立时,执行此代码快

}

注释:执行逻辑:当程序执行到if时一定会执行条件表达式进行判断;结果为true就执行代码块1;结果为false,则跳过代码块1,执行代码块2.

  1. 描述自己最近遇见的js错误以及出现的原因,怎么解决,最少写出三个错误?

(1).引入路径错误-路径手敲的-需要Enter出来。

(2).代码不规范错误-缺少标点符号-注意代码规范性。

(3).代码书写错误-代码不熟悉-多学多练。

  1. 列出几个数组常用的方法并解释,以及字符串常用的方法并解释

数组:

(1).shift()方法:把数组的第一个元素删除,并返回第一个元素的值

(2).pop()方法:用于删除并返回数组的最后一个元素(删除元素),如果数组为空则返回undefined,把数组长度减一。

字符串:(字符串的平常的方法,返回的是新的字符串,并不是在字符串上进行修改)

(1).replace:指定字符串进行替换。

(2).charAt:调用方法,返回指定下标的字符串。

  1. 描述JavaScript中的匿名函数?

匿名函数就是没有实际名字的函数

例:

当我们声明一个普通函数时:

function h(){

console.log(“hello”);

}

将函数的名字h去掉,即为匿名函数,但是此时单独运行一个匿名函数由于不符合语法要求会报错,解决办法是给这个匿名函数整体加一个括号(把这个匿名函数整体括起来);如果需要执行匿名函数,则在匿名函数后面加上一个括号即可;如果需要传值,直接将参数写到括号内即可。

  1. 请简述 AJAX 及基本步骤?(原生XHR)

AJAX请求的五个步骤:

(1).建立XMLHttpRequest对象;

(2).设置回调函数;

(3).配置请求信息,(如open,get方法),使用open方法与服务器建立链接;

(4).向服务器发送数据,

(5).在回调函数中针对不同的响应状态进行处理;

 

  1. 同步和异步

同步:两个进程的运行是相关的,其中一个进程要阻塞等待另外一个进程的运行。

异步:两个进程毫不相关(不用互相等待),自己运行自己的。

  1. GET和POST

(1).GET产生的URL地址可以被BookMark,而POST不可以。

(2).GET请求会被浏览器主动cache,而POST不会,除非手动设置。

(3).GET请求只能进行url编码,而POST支持多种编程方式。

(4).GET参数通过URL传递,POST放在Request body中。

(5).GET比POST更不安全,因为参数直接暴露在URL上,所有不能用来传递敏感信息。

  1. new 操作符具体干了什么呢?

new通过Person创建出来的实例可以访问到构造函数中的属性

  1. 手写一个冒泡排序

int[] nums = {98,45,40,23,100,54,78};

        System.out.println("排序前的数组:");

        for (int i:nums) {

            System.out.print(i+"\t");

        }

        //冒泡排序

        for (int i=0;i<nums.length-1;i++){

            for (int j=0;j<nums.length-1-i;j++){

                int temp = 0;

                if (nums[j]>nums[j+1]){

                    temp=nums[j];

                    nums[j]=nums[j+1];

                    nums[j+1]=temp;

 

                }

            }

        }

        System.out.println();

        System.out.println("排序之后的数组:");

        for (int i:nums) {

            System.out.print(i+"\t");

        }

  1. 谈模块化开发的理解?

是将一个大型的软件系统划分成多个独立的模块,每个模块都有自己的功能和接口,并且能够与其他模块独立地工作。

  1. 什么是设计模式?请简述几个你知道的设计模式(工厂设计模式,观察者设计模式)

设计模型就是经过前任无数次的实践总结出的,设计过程中可以反复使用的,可以解决特定问题的设计方式。

模式:

创建型模式:工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式。

结构型模式:适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组合模式,享元模式。

行为型模式:策略模式,模板方式模式,观察者模式,迭代子模式,责任链模式,命令式模式,备忘录模式,状态模式,访问者模式,中介者模式,解释器模式。

  1. 面向对象理解,原型,原型链理解

面向对象:通过代码抽象,进而描述单个种类物体的方式

原型:JS声明构造函数(用来实例化对象的函数)时,会在内存中创建一个对应的对象,这个对象就是原函数的原型。构造函数默认有一个prototype属性,prototype的值指向函数的原型。同时原型中也有一个constructor属性,constructor的值指向函数对象。通过构造函数实例化出来的对象,并不具有prototype属性,其默认有一个_proto_属性,_proto_的值指向构造函数的原型。在原型对象上添加或修改的属性,在所有实例化出的对象上都可共享。

原型的作用:

(1).数据共享 节约内存空间

(2).实现继承

原型链:当在实例化的对象中访问一个属性时,首先会在该对象内部(自身属性)寻找,如找不到,则会向其_proto_指向的原型中寻找,如仍找不到,则继续向原型中_proto_指向的上级原型中寻找,直至找到Object.prototype._proto_为止(值为null),这种链状过程即为原型链。

原型链的作用:

查找对象的属性(方法)。

posted @   Hh0826  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示