JavaScript基础知识总结

article/2025/10/13 5:50:49

一、基本语法(数量,数据类型和运算符)

1.变量:指的是在数据中心保存数据的容器

变量是计算机内存中存储数据的标识符,根据变量名称可以获取到内存中存储的数据
也就是说,我们向内存中存储了一个数据,然后要给这个数据起一个名字,为了是我们以后再次找到他
 变量的本质是内存中一个存储单元

语法:var变量名=值

1.定义变量及赋值

注意:

1.一个变量名只能存储一个值

2.当在次给一个变量赋值的时候,前面那一次的值就会被覆盖

3.变量名区分大小写(JS区分大小写)

2.变量的命名规则及规范

1.规则:

      1.一个变量名可以有数字,字母 ,英文下划线(_),美元符号$ 组成

       2.严格区分大小写

       3.不能由数字开头,不要使用中文汉字命名

       4.不能是保留字或关键字

        5.不能出现空格

2.规范

     1.变量名尽量有意义(语义化)

      2.遵循驼峰命名(由多个单词命名时,从第二个单词开始,首字母大写)

3.访问变量值

控制台输出语句 :console.log("输出内容")  引号中的内容被打印在控制窗口

                               console.log("变量名")  引号中的变量值被打印在控制窗口

 2.数据类型

- 是指我们存储在内存单元中值的类型
- 我们通常分为两大类 基本数据类型 和 复杂数据类型

1.基本数据类型

1.数值型(number)

a.一切数字都是数值类型(包括二进制,十进制,十六进制等)eg:1 2 3 3.5等

b.NaN(not a number)一个非数字

2.字符串类型(string)

被引号所包裹的任何内容(" number" ' rose' `23`)

3.布尔类型(boolean)

它的值只有两个true和false

4.null类型(null)

只有一个,就是null,表示空的意思

5.undefined类型(undefined)

只有一个,就是undefined,表示没有值

2.判断数据类型

利用typeof关键字来对存储的关键字进行判断是什么类型的

isNaN(x)函数用于检查其参数x是否是非数字值,是非数字值返回true,否则返回false

提示:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。
当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。

3.数据类型的转换

数据类型之间的转换,比如数字转成字符串,字符串转成布尔,布尔转成数字等

1.Number(变量)

a. 可以把一个变量强制转换成数值类型

b.可以转换成小数,会保留小数

c.可以转换成布尔值

d.遇到不可转换的都会返回NaN

 2.parseInt(变量)

从第一位开始检查,是数字就转换,知道一个不是数字的内容

开头就不是数字,就返回NaN

不认识小数点,只能保留整数

3.parseInt(变量)

从第一位开始检查,是数字就转换,知道一个不是数字的内容

开头就不是数字,就返回NaN

认识小数点

4.除了加法以外的数学运算

运算符两边都是可运算的数字才行

如果运算符任何一遍不是可运算的数字,就会返回NaN

加法不可以用

 4.运算符

就是在代码里面进行运算的时候使用的符号,
不光只是数学运算,我们在 js 里面还有很多的运算方式

数学运算符

二、逻辑分支语句、IF 条件分支结构、SWITCH 条件分支结构、三元运算(扩展)等

一、程序:是由一条条语句构成

程序=程序语句+数据结构+算法

程序语句:

               var  num//变量声明语句

               num=100 //赋值语句

               connsole.log(num)//控制台语句

               alert("helloword")//弹框语句(函数调用语句)

            程序执行从上往下依次执行

       

 1.   逻辑分支语句:

     1. if语句

             语法

             if(条件表达式){     可以有多条语句

 var  num//变量声明语句

               num=100 //赋值语句

               connsole.log(num)//控制台语句

               alert("helloword")//弹框语句(函数调用语句)

             }  // 判断()中的条件是否成立

         2. if-else语句:

            if(条件表达式){

                语句块1

            }else{

                语句块2

            }

          3. if-else if-else语句:

                 if(条件表达式1){

                 语句块1

            }else if(条件表达式2) {

                语句块2

             }

          4.  if语句的嵌套

            if(条件表达式){

                语句块 

                if(条件){

            }   

          }

2.多分支语句

       switch多分支语句

           语法:

           switch(表达式的值){

              case 值1:

                  语句块1

                   [break]

             case 值2:

                 语句块2

                 [break]

             case 值3:

                 语句块3

                 [break]   

default:

                  语句块

            }

 switch多分支语句的穿透

           语法:

           switch(表达式的值){

              case 值1:

                  语句块1

             case 值2:

                 语句块2

             case 值3:

                 语句块3

            default:

                  语句块

            }

3.三目运算

        1.两个符号组成的语句

        2.if-else语句

           if(条件){

            语句块1

           }else if{

            语句块2

           }

         

 条件 ?语句1(条件为true执行)  :语句2(条件为false执行)

三、程序的三种结构、循环语句(while 、do-while 、for)及跳转语句(break与countinue的区别 )计数器和break与continue的连用、document.write()等

 一、循环结构

    1.while循环

         

  while语法:

            while(条件表达式){

                //循环体->循环体执行的语句块

            }

            if(条件表达式){

                //语句块

            }

        注:循环体要有改变条件的语句,否则就成为死循环

     循环三要素:

                  1.初始化条件

                       while(2.条件){

                       循环体

                       3.改变条件语句

                    }

2. do-while循环   

   语法: 

        do{

            //循环体

        }while(条件表达式);

3.for循环

语法:

           for(初始化;条件;改变条件的语句;){

               循环体

           }

三、拓展

1.跳转语句(break与countinue的区别 )

break与循环语句一起使用

           作用:结束循环

        switch(表达式){

                case 值1:

                   break;

            }

continue语句

          结束本次循环,continue后面的代码不执行。 继续下一次循环。

  2.计数器和break与continue的连用

例子:打印100-200内能被6整除的前3个数

         分析: 1. 100-200内数

                 2. 被6整除

                 3. 前3个数

 <script>var count=0for(var i=100;i<=200;i++){if(i%6===0){console.log(i)count++}if(count===3){break}}</script>

3.document.write()的使用方法

document.write() 打印输出内容到页面上,多个输出不能换行

    <script>document.write("heellworld")//显示内容到页面document.write("<br>")//换行document.write("javascript")//多条语句输出不换行</script>

4.双重for循环的运用

<script>for(var i=1;i<=2;i++){for(var j=1;j<=3;j++){console.log("i:",i,"j:",j)}}</script>

5.累加算法

四、JavaScript的函数、函数的封装(有参、无参、有无返回值的基本用法)、预解析

一、函数

作用 :对任意代码进行“封装”,在需要的时候进行调用

             =>像一个盒子,盒子里面转代码,通过盒子名称找到盒子执行里面的代码

                 1.盒子封装代码

     

           2.调用盒子执行代码

            语法:

               //定义函数

            function 函数名(){

                封装代码

            }

            函数名()  // 函数调用语句

二、函数的参数

     function 函数名(m){  m为实参

            函数体

        }

        函数名(100) 100为形参

        1.形参:定义函数时,在函数名括号中定义的变量称为形参

        2.实参:使用函数调用语句,调用函数时,传入的实际参数值

         

        参数个数

         function 函数名(m,n){

            函数体

        }

        函数名(100,200)

        参数个数不匹配

          1.形参个数多于实参

          2.实参个数多于形参

1.函数参数的封装

<script>// 封装 求两个数最大值54,67的函数//定义名为getMax的函数function getMax() {var m = 54var n = 67var max = mif (n > max) {max = n}console.log("最大值是", max)}getMax()// 封装 求两个数最大值54,67的函数//定义名为getMax的函数function getMax(x,z) {var m = xvar n = zvar max = mif (n > max) {max = n}console.log("最大值是", max)}getMax(54,67)getMax(72,85)

2.函数返回值return的运用

return 语句

          作用:在函数体中,终止函数整体代码向下执行,返回函数调用处

          return 值

3. 函数类型

           根据函数参数和返回值,分为四类

            1.无参无返回值

             function fun(){

             }

             fun()

            2.有参无返回值

            function fun(m){

             }

             fun(100)

            3.无参有返回值

            function fun(){

                return 100

             }

            var m = fun()

            4.有参有返回值

            function fun(m){

                return 100

            }

            var m=fun(100)

4.函数参数的默认值

 <script>function fun(m) {m = m || 10  //m无值就为undefined是falseconsole.log("m", m)}fun()  //fun()中无值默认为10,有值就输出定义的那个值</script>

 5.函数的定义方式

       

        1.声明式定义函数

        function 函数名(){

        }

        2.函数表达式()

 <script>var getMax=function(m,n){var max=mif(n>max){max=n}return max}var m1=getMax(34,56)     //定义变量接收console.log("最小值:",m1)</script>

二、预解析

 1.预解析

          => 浏览器Javascript引擎解析执行JavaScript代码

              执行JavaScript代码之前,扫描通读js代码,如果返现声明式韩式和var声明的变量,执行提前

               JavaScript源代码 ->执行

                                |

                              预解析

                              1.声明式函数提前

                              2.var声明变量提前

2.函数名和变量同名:

1.声明式函数优先(考试和面试出现)

2.一定避免函数名和变量名同名

五、JavaScript函数的作用域、变量使用规则、作用域链、递归函数以及简单的了解对象,数组的运用

一、作用域

       1. 声明变量起作用的范围

            1.全局作用域:整个js全局作用

            2.局部作用域:在函数体中作用范围

                内层可以访问外层作用域变量

                外层不能访问内层作用域变量

2.作用域访问规则:如下例子

<script>var num = 100function fun1(){var num1=200console.log("fun1 num",num)function fun2(){var num2=300console.log("fun2 num",num)//如果上级的作用域没有,接着向上找,直到全局作用域console.log("fun1 num",num1)//如果当前作用域没有找到,到上级作用域找console.log("fun2 num",num2)//当前作用域找访问的变量console.log(num3);//全局作用域都没找到报错:Uncaught ReferenceError: num1 is not defined}}</script>

3.作用域的赋值规则:如下例子

<script>var num = 100function fun1() {var num1 = 200// console.log("fun1 num",num)function fun2() {var num2 = 300//赋值前在当前作用域查找num1 = 400//上级作用域查找,找到赋值num = 500//上级作用域查找,直到全局作用域num3 = 600//上级作用域查找,全局作用域查找,全局作用域也没有查找到,将自动创建全局变量,然后赋值}}</script>

作用域链:(重点)

变量访问或赋值时,
先在自己的作用域查找,
如果没找到,再一层一层向上查找,至到最外层全局作用域。
这种层层查找关系,叫作用域链

二、递归函数

递归函数:

              函数自身调用自身,这样的函数成为递归函数

              注意:

                 1. 要有递归结束的条件

                 2.改变递归的条件的代码

<script>// 1+2+3的和function f(n) {// 结束条件if (n == 1) {return 1}return f(n - 1) + n}var sum = f(3)console.log("前三项和为:",sum)</script>

三、对象

 一、理解对象

            =>面向对象

              =>现实生活中对象

                具体一个事物

                张三同学

                对象有自己的特征行为

               

             

            => 软件世界

              对象 Object

              属性  方法

              属性名 属性值

         

        二、创建对象

            var jackObj={}//创建空对象

            var jackObj={          //{属性:"属性值"}

                name:"jack",  //姓名属性=>name 属性名和jack属性构成

                age:18,       //年龄属性=>age 属性名和18属性构成

            }

       三、 数据类型

          var num=100//number

          var name="lucy" //string

          复杂数据类型

            var obj={name:"jack",age:18}

       四、创建对象new语句

          字面量方式

        var obj={

            name:"jack"

            age:18

        }

        构造函数方式

        var obj=new Object()//空对象

          obj.name="jack"

          obj.age=18

      五、遍历对象 for-in

         

<script>// 1.创建对象var obj = {name: "jack",age: 18,sex: "男"}// 2.访问对象给定的属性值console.log("name:", obj.name)console.log("age:", obj.age)console.log("sex:", obj.sex)//3. 修改属性值obj.name = "rose"console.log("name:", obj.name)console.log(obj)//4. 删除属性值delete obj.nameconsole.log(obj)// 5.添加属性obj.score = 98console.log(obj)// 6.遍历对象 for-infor (var key in obj) {//第一次遍历key是nameconsole.log("key",key,"value",obj[key])}// 7.访问属性值,属性名是变量console.log("name", obj.name)var _name = "name"console.log(obj[_name])console.log(obj["name"])</script>

 复杂数据类型

         Object

            var obj={

                name="jack",

                age:18

            }

             

              key/value->键/值对的组合

        数组  Array

            数组

               1. 作用:存储一系列有序数据的集合

               2.创建数组

                 var arr=[]  //创建空数组

                 var arr=[1,2,"jack",true]

                3.索引号(下标)

                4.访问数组元素

                   arr[]

                   数组名[索引号]

                5.数组长度(元素个数)

                    length属性

                    arr.length

                6.遍历数组

                   for

                7.创建数组方式

                   构造函数

                     var arr=new Array()  空数组

                     字面量

                     var arr=[]空数组


http://chatgpt.dhexx.cn/article/a9XyVjTF.shtml

相关文章

JS基础知识总结 (一)

一、JS简介 JavaScript是一种运行在客户端的脚本语言&#xff0c;最早是在HTML&#xff08;标准通用标记语言下的一个应用&#xff09;网页上使用&#xff0c;用来给HTML网页增加动态功能。 浏览器就是一种运行JavaScript脚本语言的客户端&#xff0c;JavaScript的解释器被称为…

最新Javascript 基础知识全总结(持续更新)

目录 一,JavaScript 是什么 1, JavaScript 是什么 2, 作用 3, JavaScript的组成 二, JavaScript 书写位置 1,内部 JavaScript 2, 外部 JavaScript 3, 内联 JavaScript 三, JavaScript 的注释 1, 单行注释 2, 多行注释 四, JavaScript的结束符 五, 输入和输出语法 …

JS入门基础知识

一、JS是什么 1、JS概述 JavaScript是一个轻量级的语句&#xff0c;他是单线程的语言&#xff08;一个线程解析&#xff09;。他是一个弱语言&#xff08;他没有固定 的类型划分 你给定的值是什么类型 他就是什么类型&#xff09;他还是一个脚本语言&#xff08;侵入 实现xss攻…

2020年4月中国编程语言排行榜

本文已过时 都7月了&#xff0c;你该看7月的数据去了&#xff1a; 2020年7月中国编程语言排行榜 2020年7月程序员工资统计&#xff0c;平均14357元&#xff0c;又跌了&#xff0c;扎心 编程语言比例 排名编程语言平均工资工资中位数最低工资最高工资人头人头百分比1rust2…

2020年5月中国编程语言排行榜

本文已过时 都7月了&#xff0c;你该看7月的数据去了&#xff1a; 2020年7月中国编程语言排行榜 2020年7月程序员工资统计&#xff0c;平均14357元&#xff0c;又跌了&#xff0c;扎心 编程语言比例 排名编程语言平均工资工资中位数最低工资最高工资人头人头百分比1scala20…

2021年10月世界编程语言排行

2021 年10 月的 TIOBE 指数 10月头条&#xff1a;Python编程语言流行指数排名第一&#xff01; 20多年来&#xff0c;我们第一次有了一个新的领导者&#xff1a;Python编程语言。Java和C的长期霸权已经结束。Python最初是一种简单的脚本语言&#xff0c;作为Perl的替代品&…

2023十大最牛编程语言排行榜以及各语言的优缺点

文章目录 ⭐️ 2023年7月十大编程语言排行榜⭐️ 十大值得学习编程语言概要&#x1f31f; Python&#x1f31f; C/C&#x1f31f; Java&#x1f31f; C#&#x1f31f; JavaScript&#x1f31f; Swift&#x1f31f; Ruby&#x1f31f; GO&#xff08;Golang&#xff09;&#x1…

最难学的10大编程语言排行榜,Java只排第三,第一名出乎意料

2018年12月的TIOBE编程语言排行榜已经出炉,Python重回前三,Go语言跌出前十,Visual Basic.NET涨幅明显,保持第五名。 TIOBE排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排…

最难学的十大编程语言,C++排第二,它竟是第一名!不服

编程语言是开发者们代码工作的核心&#xff0c;也是许多开发者最爱讨论的话题。编程语言的选择对开发者和工具制造商都十分重要&#xff0c;前者需要保持最新和具备市场潜力的技能&#xff0c;后者则亟需确保他们能够提供最有用的 SDK。 开发者经济分析公司 SlashData 曾发布了…

2020年最新编程语言排行榜出炉TIOBE

2020年1月TIOBE指数 一月标题&#xff1a;编程语言C荣获2019年度最佳编程语言 每个人都认为Python将连续第二年成为TIOBE的年度编程语言。但这一次是好的老语言C凭借2.4&#xff05;的年增长率获得了奖项。排名第二的是C&#xff03;&#xff08;2.1&#xff05;&#xff09;…

编程语言 Top 5 榜单:最容易学的编程语言 VS 最难学的编程语言

在线学习平台Springboard 罗列了一个最容易学习和最难学的编程语言 Top 5 榜单。 事实上&#xff0c;问一个程序员最容易学习的语言&#xff0c;就像问一个人他们最喜欢的冰淇淋。每个人都有自己的偏好&#xff0c;永远没有真正的正确答案。正如开发者和教育家 Marek Zaluski …

2021年编程语言排行榜出炉,第一名实至名归!

点击上方“码农突围”&#xff0c;马上关注 这里是码农充电第一站&#xff0c;回复“666”&#xff0c;获取一份专属大礼包 真爱&#xff0c;请设置“星标”或点个“在看 在TIOBE公布的近一期榜单中&#xff0c;2021编程语言排名前十的分别是&#xff1a;Python&#xff0c;Jav…

2018十大最热门编程语言排行榜出炉,Java竟不是第一!

编程语言的受欢迎程度、学习的人群数量&#xff0c;以及由于人工智能的兴起&#xff0c;最热门的编程语言排行榜也发生了变化。让我们来看看。 1、Python Python的历史可以追溯到1989年&#xff0c;因其高度可读的代码而深受其粉丝的喜爱。许多程序员认为这是最简单的语言开始…

盘点最常见的5个编程语言排行榜、排名逻辑最新榜单。

&#xff08;思考&#xff1a;为何TIOBE指数中&#xff0c;2015年11月- 2017年11月左右&#xff0c;C、Java等大多语言都出现了暴跌&#xff1f;&#xff09; 编程语言排名从来都是备受争议的话题。《西游记》我觉得猪八戒第一&#xff0c;孙悟空第二&#xff0c;沙和尚第三&am…

最难编程语言排名!不接受反驳!!!

前言&#xff1a;小编这有自学的过程中有一些资源可以免费共享&#xff0c; 【内涵Java学习80g视频&#xff0c;大厂面试题库&#xff0c;Java学习书籍&#xff0c;或者技术指导】 加微信领取【备注007】 第五名、Objective-C 颁奖词 Objective-C是一种通用、高级、面向对象…

2023年顶级编程语言趋势

对于开发人员和软件工程师来说&#xff0c;选择更优秀的编程语言使编写可以在任何地方运行的软件变得更加容易&#xff0c;工作效率更高。从 Java 的缓慢衰落到 MATLAB 的惊人流行&#xff0c;对当今最流行的编程语言的分析&#xff0c;可以帮助你了解最新趋势并响应最新趋势。…

2月编程语言排行榜新鲜出炉,谁又摘得桂冠?

近日&#xff0c;TIOBE公布了2023年2月编程语言排行榜&#xff0c;本月各个语言表现如何&#xff1f;谁又摘得桂冠&#xff1f;一起来看看吧&#xff01; TIOBE 2月Top15编程语言&#xff1a; 详细榜单查看TIOBE官网 https://www.tiobe.com/tiobe-index/ 关注IT行业的小伙伴…

2021年11月世界编程语言排行

2021年11月世界编程语言排行 11 月头条&#xff1a;PHP 即将失去前 10 名的位置 自 TIOBE 指数启动以来&#xff0c;20 多年前&#xff0c;PHP 一直是排名前 10 的永久玩家。最近&#xff0c;我们看到 PHP 努力保持在前 10 名。PHP 曾经是 Web 编程的大师&#xff0c;但现在它…

这6个编程语言排行榜,据说全都知道的人不足1% | 年终榜单大盘点

简介&#xff1a; 编程语言是开发的基础。它们种类繁多&#xff0c;各具特色&#xff0c;开发者会根据不同场景选择相应的语言&#xff0c;但你知道你使用的语言&#xff0c;在中国乃至世界有多少开发者也在用吗&#xff1f;它们的排名又是怎样的&#xff1f;快来看看你认识几个…

2021年最受欢迎的编程语言大排名

你不想浪费时间。如果您要节省学习新编程语言所需的时间和精力&#xff0c;您希望毫无疑问地确保您选择的编程语言是市场上最受欢迎的编程语言。 毕竟&#xff0c;如果你想开始&#xff08;或推进&#xff09;软件开发职业&#xff0c;你需要站在隐喻课的前列。您需要知道哪些编…