JavaScript基础语法

目录

一、书写形式

1、内联式

2、内嵌式

3、外部式

4、注释

5、输入

6、输出

6.1、alert

6.2、console.log

二、JS基础语法

1、JS中的变量

1.1、变量的创建

1.2、动态类型

2、基本数据类型

2.1、 number数字类型

2.2、string字符串类型

2.3、boolean布尔类型

2.4、undefined未定义数据类型

2.5、null空值类型

3、运算符

3.1、比较运算符

3.2、逻辑运算符

4、条件语句和循环语句

5、数组

5.1创建数组

5.2获取数组元素

5.3新增数组元素

5.4删除数组元素

6、函数

6.1 语法格式

6.2函数表达式

6.3作用域

7、对象

7.1创建对象


一、书写形式

和CSS一样,JS代码也可以通过行内式、内嵌式、外部式的方式嵌入到HTML代码中~

1、内联式

直接嵌入到html元素内部:

    <input type="button" value="这是一个按钮" onclick="alert('hello world')">

这种写法不常用~ 

2、内嵌式

写到script标签中:

    <script>
        alert('hello world')
    </script>

3、外部式

把JS代码写到单独的.js文件中:

    <script src="test.js">
    </script>

 ★ 这种写法本质上就是把对应文件中的js代码拷贝到script标签中,这样做可以提取出多个文件中公共的一些代码,达到代码复用的效果,因此也是实际开发中最常用的写法~

4、注释

单行注释://

多行注释:/*  */

注意:多行注释不能嵌套,否则代码会报错。

5、输入

使用prompt关键字:

prompt("这是一个输入框")

  

6、输出

6.1、alert

弹出一个对话框:

alert("hello js")

这种弹框的方式很影响用户的体验,所以在实际开发中很少用到~ 

6.2、console.log

在控制台打印一个日志(一般是给程序员看的):

console.log("hello JavaScript");

需要在开发者工具中的控制台查看打印结果:

 ★ console是JS中的一个“对象”,表示取对象中的某个属性或方法,console.log就表示:使用console对象的log方法~

二、JS基础语法

1、JS中的变量

1.1、变量的创建

关键字:varlet

    <script>
        var name = "曹植";
        let age = 20;
    </script>

注意:

(1) varlet并非是变量的类型,只是用来声明nameage是一个变量;

(2) 变量的类型并没有显示写出来,具体的类型根据=后面的值来区分的;

(3) var写法是老式写法,坑比较多,而let是新式写法,比较推荐使用~

1.2、动态类型

在JS中,变量的类型可以在运行过程中发生改变:

    <script>
        let a = 10;
        //typeof用来查看变量的类型
        console.log(typeof(a));
        a = "hello";
        console.log(typeof(a));
    </script>

可以看到,a的类型从number变为了string类型~ 

2、基本数据类型

2.1、 number数字类型

在JS中,不区分整数和浮点数,统一使用number类型来表示:

    <script>
        console.log(1/2);
    </script>

2.1.1几个特殊的数字值:

(1) Infinity:无穷大,大于任何数字,表示数字已经超过了JS能表示的范围;

(2) -Infinity:负无穷大小于任何数字,表示数字已经超过了JS能表示的范围;

    <script>
        //使用一个正小数除0得到无穷大
        console.log(1.5/0);
        //使用一个负小数除0得到负无穷大
        console.log(-1.5/0);
    </script>

注意:负无穷大和无穷小不是一回事,无穷小指无限趋近于0~

(3) NaN:Not a number,表示当前的结果不是一个合法的数字。

    <script>
        console.log("hello" - 1);
    </script>

2.2、string字符串类型

2.2.1基本规则

JS中,字符串既可以使用单引号,也可以使用双引号引起来:

    <script>
        let a = 'hello';
        let b = "world";
    </script>

 ★ 如果要表示的字符串中含有单引号,就可以使用双引号引起来;

 ★ 如果要表示的字符串中含有双引号,就可以使用单引号引起来;

 ★ 否则需要使用转义字符

2.2.2求字符串长度

使用stringlength属性即可:

    <script>
        let a = 'zhangsan';
        let b = "张三";
        console.log(a.length);
        console.log(b.length);
    </script>

2.2.3字符串拼接

和Java一样,直接使用 + 来拼接,会生成一个新的字符串:

    <script>
        let a = 10;

        console.log("a = " + a);
    </script>

2.3、boolean布尔类型

在JS中,布尔类型也只有两个值:true和false,并且0表示false,非0表示true。

但是布尔类型在参与运算时,会进行隐式类型转换,true转为1,false转为0进行运算:

    <script>
        let a = true;
        console.log(a+1);
    </script>

弱类型语言:像JS这种,数据类型区分度低,界限模糊,比较支持隐式类型转换的语言;

强类型语言:像Java这种,数据类型区分度高,界限明确,不太支持隐式类型转换的语言。

注意:动态类型、静态类型和强类型、弱类型,是两组不同的概念。

2.4、undefined未定义数据类型

 ★ undefined未定义数据类型中只有一个值:undefined。

如果一个变量没有被初始化,结果就是undefined。

undefined和字符串相加,会进行字符串拼接;和数字相加,结果为NaN:

    <script>
        //未初始化的变量a
        let a;
        console.log(a);
        //undefined和字符串相加
        console.log(hello+" "+a);
        //undefined和数字相加
        console.log(a + 10);
    </script>

2.5、null空值类型

null空值类型也只有一个值:null,表示当前变量是一个“空值”。

    <script>
        let a = null;
        console.log(a);
        //null和字符串相加
        console.log(a+"hello");
        //null和数字相加
        console.log(a+10);
    </script>

注意:undefined表示当前的变量未定义,null表示当前变量的值为空。 

3、运算符

JS中的运算符和Java中的用法基本相同,其中有几个不同的点:

3.1、比较运算符

==和===都是用来比较相等的,但是==会进行隐式类型转换,而===不会:

    <script>
        let a = "10";//string类型
        let b = 10;//number类型
        console.log(a==b);
        console.log(a===b);
    </script>

 

注意:不能直接使用==进行浮点数的比较,I EEE754标准表示浮点数不一定精确,比较的结果可能会和预期结果不同。

!= 和 !==比较规则同理~

3.2、逻辑运算符

在JS中,逻辑与&&和逻辑或||运算符返回的结果不是true或者false,而是表达式1或表达式2。

    <script>
        let a = 10;
        let b = a || 0;
        console.log(b);
    </script>

 ★ 上述代码中,如果a的值为真,就会把a的值赋给b,否则就把0的值赋给b。

 ★ 而&&则相反:如果a的值为假,就会把a的值赋给b,否则就把0的值赋给b:

    <script>
        let a = 10;
        let b = a && 0;//表达式左边真,右边假
        console.log("b = " + b);
        let c = false && a;//表达式左边假,右边真
        console.log("c = " + c);
        let d = true && a;//表达式两边都为真
        console.log("d = " + d);
    </script>

4、条件语句和循环语句

JS中的条件语句和循环语句的用法与Java的基本一样,这里就不赘述了~

5、数组

JS中的数组功能很多,过于灵活,和Java的数组有很大的区别~

5.1创建数组

5.1.1使用new关键字创建

    <script>
        let arr = new Array();
    </script>

5.1.2使用 [ ] 创建

    <script>
        let arr = [1,2,3,4,true,"hello",undefined];
    </script>

注意:JS中,同一个数组里的元素可以是不同类型(因为JS是动态类型的语言)。

5.2获取数组元素

 ★ 使用下标的方式访问数组元素,数组下标从0开始:

    <script>
        let arr = ["刘备","关羽","张飞"];

        //访问数组0下标元素
        console.log(arr[0]);

        //直接输入数组名,会访问整个数组
        console.log(arr);
    </script>

 ★ 如果要访问的下标超出数组范围,则结果为undefined:

    <script>
        let arr = ["刘备","关羽","张飞"];

        console.log(arr[-1]);
        console.log(arr[10]);
    </script>

5.3新增数组元素

5.3.1通过修改数组长度新增

JS中的数组长度可以随时变化的,增加数组长度,就会在数组末尾新增元素,新增元素的默认值为undefined:

    <script>
        let arr = ["刘备","关羽","张飞"];

        arr.length = 10;
        console.log(arr);
        
    </script>

5.3.2通过下标新增

如果下标超出数组范围,会在指定位置插入元素,并把中间的元素设为默认值undefined:

    <script>
        let arr = ["刘备","关羽","张飞"];

        arr[100] = "赵云";
        console.log(arr[100]);
        console.log(arr[50]);
        console.log(arr);
    </script>

 

 ★ JS中的数组也可以“当做Map来存放键值对”:

    <script>
        let arr = ["刘备","关羽","张飞"];

        arr[-1] = "赵云";
        arr["hello"] = "world";
        arr[undefined] = 999;

        console.log(arr);
    </script>

 ★ 通过代码运行结果可以发现,数组长度并没有发生变化,实际上这些键值对更像是数组这个对象中的一个自定义属性,既可以通过[ ] 访问,也可以通过 . 访问:

    <script>
        let arr = ["刘备","关羽","张飞"];

        arr[-1] = "赵云";
        arr["hello"] = "world";
        arr[undefined] = 999;

        console.log(arr.hello);

    </script>

 ★ 虽然JS支持这种操作,但我们一般不这样使用,JS里有专门的map类型来表示键值对~

5.3.3使用push方法进行追加元素

    <script>
        let arr = [];
        for (let i = 0; i < 10; i++) {
            arr.push(i);
        }
        console.log(arr);
    </script>

5.4删除数组元素

5.4.1使用pop方法删除

    <script>
        let arr = [1,2,3,4,5];
        //pop方法会返回当前删除的元素
        //删除5
        let ret = arr.pop();
        console.log(ret);
        //删除4
        ret = arr.pop();
        console.log(ret);
        //数组此时还剩3个元素
        console.log(arr);
    </script>

5.4.2使用splice方法

splice既可以进行插入,也可以进行删除,还可以进行替换操作:

 ★ 插入

    <script>
        let arr = [1,2,3,4,5,6,7];
        //往2下标插入一个"hello"
        arr.splice(2,0,"hello");
        console.log(arr);
    </script>

splice方法有三个参数:

①第一个参数表示要替换的下标位置;

②第二个参数表示要替换的数组长度,参数是0表示不对原数组内容调整,只是新增元素;

③第三个参数表示要替换到指定位置的新元素。

 ★ 替换

    <script>
        let arr = [1,2,3,4,5,6,7];
        //把3下标元素替换成"hello"
        arr.splice(3,1,"hello");
        console.log(arr);
    </script>

 ★ 删除

    <script>
        let arr = [1,2,3,4,5,6,7];
        //删除3下标往后的3个元素
        arr.splice(3,3);
        console.log(arr);
    </script>

如果不传第三个参数的话,就可以起到删除元素的效果~

6、函数

6.1 语法格式

语法格式:

//定义函数//声明函数//创建函数

function 函数名(形参列表) {

       函数体;

       return 返回值;

}

    <script>
        //定义函数
        function add(x,y){
            return x+y;
        }
        //调用函数
        //可以传各种类型的参数
        let sum = add(10,true);
        console.log(sum);
    </script>

 ★ 由于JS是动态类型的语言,所以函数不需要写返回值,传入的参数也可以是任意类型。

注意:形参和实参的个数可以不匹配,但实际写代码的时候尽量保持匹配。

(1) 如果实参个数比形参个数多,则多出来的实参不参与函数运算;

    <script>
        function add(x,y,z){
            return x+y+z;
        }
        let sum = add(10,20,30,40,50);
        console.log(sum);
    </script>

(2) 如果形参个数比实参个数多,则多出来的形参的值为undefined。

    <script>
        function add(x,y,z){
            return x+y+z;
        }
        let sum = add(10,20);
        console.log(sum);
    </script>

number类型和undefined类型相加,结果为NaN~ 

6.2函数表达式

函数表达式是另一种定义函数的方式:把函数赋值给一个变量

    <script>
        //用一个变量来接收函数
        let add = function(){
            let sum = 0;
            //arguments这个数组包含了调用add函数时传入的所有实参的值
            for (let i = 0; i < arguments.length; i++) {
                sum += arguments[i];
            }
            return sum;
        }
        console.log(add(10,20,30,40));
        console.log(add("hello",undefined));
    </script>

 ★ arguments是JS中的一个内置数组变量,包含了调用函数时传入的所有实参的值~

 ★ 在JS中,函数是一等公民:可以用变量保存,也可以作为其他函数的参数或返回值。

6.3作用域

 ★ 在JS中,如果访问一个变量,首先会在当前代码块中查找,如果当前代码块中没找到,就会继续在上级代码块中查找,一直查找到全局的作用域(<script>标签):

7、对象

JS的对象类似于简化版的Java中的对象~

7.1创建对象

7.1.1使用{}创建对象

对象中的属性和方法使用键值对的形式来组织;

键值对之间使用 , 分割,最后一个属性后面可有可无;

键和值之间使用 : 分割;

方法的值是一个匿名函数。

    <script>
        let person = {
            name: '坤坤',
            age: 18,
            sing: function(){
                console.log(this.name+"正在唱鸡你太美");
            }
        }
        console.log(person.name);
        person.sing();
    </script>

7.1.2使用构造函数创建对象

如果需要创建多个相同的对象,可以使用构造函数的方式:

    <script>
        function Person(name,age,singMsg){
            this.name = name;
            this.age = age;
            this.sing = function(){
                console.log(singMsg);
            }
        }
        let person1 = new Person("坤坤",18,"鸡你太美");
        let person2 = new Person("鲲鲲",20,"基尼太美");
        console.log(person1.name);
        person2.sing();
    </script>

JS中虽然有“类”的概念,但是并没有封装、继承、多态的机制,所以JS不是一个“面向对象”的语言。

  • 14
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
JavaScript基础语法包括数据类型、运算符、选择结构和循环结构。在JavaScript中,所有的类型都是用var关键字来修饰,但实际中还是有类型区分的。常见的数据类型包括字符串、数字、布尔值、对象和数组等。 运算符用于进行数学运算和逻辑判断。常见的运算符包括加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)、取余运算符(%)等。逻辑运算符包括与运算符(&&)、或运算符(||)、非运算符(!)等。 选择结构用于根据条件执行不同的代码块。常见的选择结构有if语句、switch语句。if语句根据条件是否为真来执行相应的代码块,switch语句根据表达式的值来选择执行的代码块。 循环结构用于重复执行一段代码。常见的循环结构有for循环、while循环和do-while循环。for循环在指定条件为真的情况下重复执行代码块,while循环在条件为真的情况下重复执行代码块,do-while循环先执行一次代码块,然后在条件为真的情况下重复执行代码块。 举个例子,下面是一段JavaScript代码: ```javascript <script> var a = 10; var b = 5; console.log(a > b && b > a); console.log(a > b || b > a); </script> ``` 在这段代码中,我们定义了两个变量a和b,并使用console.log()方法分别输出了两个逻辑表达式的结果。第一行代码中,a > b && b > a的结果为false,因为a不大于b且b不大于a。第二行代码中,a > b || b > a的结果为true,因为a不大于b或b不大于a至少有一个条件成立。 这就是JavaScript基础语法的一部分,包括数据类型、运算符、选择结构和循环结构。通过掌握这些基础知识,我们可以开始编写JavaScript程序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【JavaScript】基本语法大全](https://blog.csdn.net/weixin_64916311/article/details/129136028)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃点橘子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值