
JavaScript自学课程
文章平均质量分 92
Web前端有三层:
HTML:从语义的角度,描述页面结构
CSS:从审美的角度,描述样式(美化页面)
JavaScript:从交互的角度,描述行为(实现业务逻辑和页面控制)
编程的一拳超人
清醒,知趣,明得失,知进退。
展开
-
JavaScript基础--23-高阶函数详解
高阶函数(Higher-Order Function)需满足以下条件之一:接受一个或多个函数作为参数;返回一个新函数。其本质是对其他函数进行操作的函数,体现了JavaScript中"函数是一等公民"的特性。原创 2025-04-08 15:11:51 · 325 阅读 · 0 评论 -
JavaScript基础--22-call、apply 和 bind
call()apply()和bind()call():适合明确参数数量和需要立即执行的场景。apply():适合动态参数(如数组)和复用已有方法。bind():适合延迟执行、事件绑定和参数预设。通过灵活运用这些方法,可实现代码复用、继承、高阶函数等复杂逻辑,是 JavaScript 函数式编程的重要基础。原创 2025-04-07 16:12:37 · 1068 阅读 · 0 评论 -
JavaScript基础--21-深入探索 this 指向:父函数与作用域链的迷思
调用方式决定指向:始终坚持根据函数的调用方式判断 this 指向箭头函数特殊规则:词法作用域绑定,不可通过 call/apply 修改显式绑定优先:当使用 bind/call/apply 时,优先级最高严格模式影响:独立函数调用时 this 为 undefined异步环境注意:setTimeout/setInterval/Promise 等场景容易丢失上下文通过理解这些深层机制,开发者可以更精准地控制 this 指向,避免常见的上下文丢失问题,写出更健壮的 JavaScript 代码。原创 2025-04-07 15:59:56 · 563 阅读 · 0 评论 -
JavaScript基础--20-JavaScript 预编译机制深度解析
两种预编译场景(全局/函数)四种声明处理顺序(参数 → 变量 → 实参 → 函数)不同声明方式的差异(var/let/const/function)现代 JavaScript 的新特性影响更准确地预测代码行为避免常见的提升陷阱编写更可靠的 JavaScript 代码更好地理解闭包和作用域。原创 2025-04-07 15:52:35 · 346 阅读 · 0 评论 -
JavaScript基础--19-作用域和变量提升
- **概念**:通俗来讲,作用域是一个变量或函数的作用范围。作用域在**函数定义**时,就已经确定了。- **目的**:为了提高程序的可靠性,同时减少命名冲突。作用域的分类在 JS 中,一共有两种作用域:(ES6 之前)- 全局作用域:作用于整个 script 标签内部,或者作用域一个独立的 JS 文件。- 函数作用域(局部作用域):作用于函数内的代码环境。原创 2025-04-07 15:44:06 · 993 阅读 · 0 评论 -
JavaScript基础--18函数
关于函数的核心内容:函数有哪几种定义和调用方式this:函数内部的 this 指向、如何改变 this 的指向。函数的严格模式高阶函数:函数作为参数传递、函数作为返回值传递闭包:闭包的作用递归:递归的两个条件深拷贝和浅拷贝的区别函数:就是将一些功能或语句进行封装,在需要的时候,通过调用的形式,执行这些语句。函数也是一个对象使用typeof检查一个函数对象时,会返回function函数的作用将大量重复的语句抽取出来,写在函数里,以后需要这些语句的时候,可以直接调用函数,避免重复劳动。原创 2025-04-07 15:38:57 · 593 阅读 · 0 评论 -
JavaScript基础--17-数组的常见方法
如果在 sort()方法中带参,我们就可以自定义排序规则。具体做法如下:我们可以在 sort()添加一个回调函数,来指定排序规则。回调函数中需要定义两个形参,浏览器将会分别使用数组中的元素作为实参去调用回调函数。浏览器根据回调函数的返回值来决定元素的排序:(重要)如果返回一个大于 0 的值,则元素会交换位置如果返回一个小于 0 的值,则元素位置不变如果返回一个等于 0 的值,则认为两个元素相等,则不交换位置如果只是看上面的文字,可能不太好理解,我们来看看下面的例子,你肯定就能明白。原创 2025-04-06 11:11:22 · 1061 阅读 · 0 评论 -
JavaScript基础--16-数组简介
数组(Array)是属于内置对象,我们可以在MDN网站上查询它的各种方法。数组和普通对象的功能类似,也是用来存储一些值的。普通对象是使用字符串作为属性名的,而数组是使用数字作为索引来操作元素。索引:从 0 开始的整数就是索引。数组的存储性能比普通对象要好。在实际开发中我们经常使用数组来存储一些数据(尤其是列表数据),使用频率非常高。比如说,上面这个页面的列表数据,它的结构就是一个大数组。数组中的元素可以是任意的数据类型,也可以是对象,也可以是函数,也可以是数组。原创 2025-04-06 11:01:03 · 900 阅读 · 0 评论 -
JavaScript基础--15-内置对象:Date
时间戳:指的是从格林威治标准时间的1970年1月1日,0时0分0秒到当前日期所花费的毫秒数(1秒 = 1000毫秒)。计算机底层在保存时间时,使用的都是时间戳。时间戳的存在,就是为了统一时间的单位。我们经常会利用时间戳来计算时间,因为它更精确。而且,在实战开发中,接口返回给前端的日期数据,都是以时间戳的形式。// 获取时间戳打印结果(可能会让你感到惊讶)- 28800000为啥打印结果是-28800000,而不是0呢?这是因为,我们的当前代码,是在中文环境下运行的,与英文时间会存在8个小时的时差。原创 2025-04-06 10:58:47 · 992 阅读 · 0 评论 -
JavaScript基础--14-内置对象:Number和Math
而这URI编码方法就可以对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字符,从而让浏览器能够接受和理解。Math 和其他的对象不同,它不是一个构造函数,不需要创建对象。所以我们不需要 通过 new 来调用,而是直接使用里面的属性和方法即可。解释:将数字 myNum 的小数点后面保留 num 位小数(四舍五入),并返回。Math属于一个工具类,里面封装了数学运算相关的属性和方法。根据上面的例子,我们还可以再延伸一下,来看看随机点名的例子。Math的中文是“数学”,pow是“幂”。原创 2025-04-06 10:57:36 · 805 阅读 · 0 评论 -
JavaScript基础--13-内置对象 String:字符串的常见方法
JavaScript 中的对象分为3种:自定义对象 、内置对象、 浏览器对象。前面两种对象:是JS的基础内容,属于 ECMAScript;第三个浏览器对象:属于JS独有,即 JS 内置的API。内置对象:就是指这个语言自带的一些对象,供开发者使用,这些对象提供了一些常用或者最基本而必要的功能(属性和方法)。内置对象最大的优点就是帮助我们快速开发。JavaScript的内置对象内置对象对象说明Arguments函数参数集合Array数组Boolean布尔对象Math数学对象Date。原创 2025-04-06 10:48:12 · 264 阅读 · 0 评论 -
JavaScript基础--12-基本包装类型
我们都知道,js 中的数据类型包括以下几种。基本数据类型:String、Number、Boolean、Null、Undefined引用数据类型:ObjectJS 为我们提供了三个基本包装类String():将基本数据类型字符串,转换为 String 对象。Number():将基本数据类型的数字,转换为 Number 对象。Boolean():将基本数据类型的布尔值,转换为 Boolean 对象。通过上面这这三个包装类,我们可以将基本数据类型的数据转换为对象。原创 2025-04-05 19:18:00 · 392 阅读 · 0 评论 -
JavaScript基础--11-对象简介
面向对象:可以创建自定义的类型,很好的支持继承和多态。面向对象的特征:封装、继承、多态。原创 2025-04-05 19:16:58 · 439 阅读 · 0 评论 -
JavaScript基础--10-流程控制语句:循环结构(for和while)
循环语句:通过循环语句可以反复的执行一段代码多次。原创 2025-04-05 19:15:34 · 733 阅读 · 0 评论 -
JavaScript基础--09-流程控制语句:选择结构(if和switch)
上面的写法 2,是比较推荐的写法:直接通过 return 的方式,让 function 里的代码不再继续往下走,这就达到目的了。上方代码的解释:代码走到 default 时,因为没有遇到 break,所以会继续往下走,直到遇见 break 或者走到程序的末尾。(1)首先,计算出表达式的值,和 case 依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到 break 就会结束。的方式来写各种条件判断,说明你的代码水平太初级了,会被人喷的,千万不要这么写。代码块中的内容,在外部是完全可见的。原创 2025-04-05 19:15:25 · 914 阅读 · 0 评论 -
JavaScript基础--08-运算符
运算符:也叫操作符,是一种符号。通过运算符可以对一个或多个值进行运算,并获取运算结果。表达式:由数字、运算符、变量的组合(组成的式子)。e表达式最终都会有一个运算结果,我们将这个结果称为表达式的返回值。都是运算符,而(3+5)/2则是表达式。比如:typeof 就是运算符,可以来获得一个值的类型。它会将该值的类型以字符串的形式返回,返回值可以是 number、string、boolean、undefined、object。原创 2025-04-05 19:15:13 · 721 阅读 · 0 评论 -
JavaScript基础--06-基本数据类型:Null 和 Undefined
如果你从未声明一个变量,就去使用它,则会报错(这个大家都知道);此时,如果用typeof检查这个变量时,会返回undefined。// 打印结果:Uncaught ReferenceError: a is not defined。原创 2025-04-05 19:06:04 · 729 阅读 · 0 评论 -
JavaScript基础--05-基本数据类型:Number
JavaScript基础--05-基本数据类型:Number原创 2025-04-05 19:05:54 · 708 阅读 · 0 评论 -
JavaScript基础--04-基本数据类型:String 和 Boolean
今天这篇文章,我们详细讲一下基本数据类型:String 和 Boolean原创 2025-04-05 19:05:38 · 677 阅读 · 0 评论 -
JavaScript基础--07-typeof和数据类型转换
变量的数据类型转换:将一种数据类型转换为另外一种数据类型。通常有三种形式的类型转换:转换为字符串类型转换为数字型转换为布尔型你会专门把某个数据类型转换成 null 或者 undefined 吗?不会,因为这样做,没有意义。原创 2025-04-05 19:04:25 · 379 阅读 · 0 评论 -
JavaScript基础--03-变量的数据类型:基本数据类型和引用数据类型
也就是说,除了那五种基本数据类型之外,其他的,都称之为 Object类型。这是因为:JavaScript 是一种「弱类型语言」,或者说是一种「动态语言」,这意味着不需要提前声明变量的类型,在程序运行过程中,类型会自动被确定。在计算机中,不同的数据所需占用的存储空间不同,为了充分利用存储空间,于是定义了不同的数据类型。而且,不同的数据类型,寓意也不同。如果两个变量保存了同一个对象的引用,当一个通过一个变量修改属性时,另一个也会受到影响。从上面的例子中,可以反映出,基本数据类型和引用数据类型是有区别的。原创 2025-04-05 18:54:04 · 544 阅读 · 0 评论 -
JavaScript基础--02-变量
字面量都可以直接使用,但是我们一般不会直接使用字面量。如果直接使用字面量的话,比较麻烦。比如说,多个地方要用到同一个字面量,还不如事先定义一个变量,用来保存字面量。变量更方便我们使用,所以在开发中都是通过变量去保存一个字面量,而不会直接使用字面量。在ES6语法之前,统一使用var关键字来声明一个变量。var name;// 声明一个名为 name 的变量let name;const age;在JavaScript中,永远都是用var来定义变量(在ES6 之前),这和C、Java等语言不同。原创 2025-04-05 18:49:12 · 539 阅读 · 0 评论 -
JavaScript基础--01-JS简介
JavaScript对初学者比较友好、简单易用。可以使用任何文本编辑工具编写,只需要浏览器就可以执行程序。JavaScript是有界面效果的(相比之下,C语言只有白底黑字)。JavaScript是弱变量类型的语言,变量只需要用 var/let/const 来声明。而Java中变量的声明,要根据变量的类型来定义。int a;整数(负数,0, 整数)float a;浮点数单精度(小数,分数)double a;浮点数双精度(小数,分数)String a;字符串(' "" '," '' ",``)原创 2025-04-05 18:43:18 · 796 阅读 · 0 评论