javascript 基础(0-25)

1.JS代码编写的位置

可以写在标签的属性当中,但这样不方便维护,不推荐使用

<body>
    <button onclick="alert('已点击');">点击</button>
    <a href=" javascript:alert('已点击') ;">这是超链接</a>
    <a href=" javascript:;">这是另外一个超链接</a>
</body>

也可以写到<script>标签中

<head>
    <script>
        // alert(" ")控制浏览器弹出一个警告框
        alert("这是我的第一行JS代码,alert弹出一个警告框");

        // 让计算机在页面中输出一个内容,向body中输出一个内容
        document.write("document.write在页面中输出一个内容");

        //向控制台输出一个内容
        console.log("console.log向控制台输出");
    </script>
</head>

也可以像css一样写到一个外部文件中后再引入

<head>
    <script src="./JS的外部文件/01.外部js文件.js"></script>
</head>

我们的<script>一旦用来引入外部文件,就不能再编写代码了,即使编写了也会被忽略


2.JS的基本语法

1.js注释:

单行注释: //
多行注释: /* */

2.js严格区分大小写

3.js每一条语句以分号结尾
(如果不写分号系统会自动添加,但这样会小号一些系统资源,且有些时候浏览器会加错分号)

4.js会自动忽略多个空格和换行


3.字面量和变量

字面量:类似于常量,一些不可改变的值
变量:用来保存字面量的,而且变量可以改变

声明变量:在js中使用var关键字来声明一个变量

<head>
    <script>
        var a;
        a=123;
        document.write(a);
        var b=123;
        document.write(b);
    </script>
</head>

4.标识符

在JS中所有可以由我们自主命名的都可以称为是标识符

例如:变量名、函数名、属性名都属于标识符

命名一个标识符时需要遵守如下规则:
1.标识符中可以含有字母、数字、 _ 、$
2.标识符不能以数字开头
3.标识符不能是ES中的关键字或保留字

在这里插入图片描述
4.命名规范标识符一般都采用驼峰命名法
例如:helloWorld aaaBbbCccDdd


5.数据类型

数据类型指的就是字面量的类型
在js中一共有六种数据类型:
1.String :字符串
2.Number :数值
3.Boolean :布尔值
4.Null :空值
5.Undefined :未定义
6.Object :对象

其中 String Number Boolean Null Undefined 属于基本数据类型
但是 Object 属于引用数据类型

1.String 字符串

1.在js中字符串需要用引号引起来,且引号必须在同一行

<head>
    <script>
        var a = "hello";
        var hello = 123;
        document.write(a);
        document.write(hello);
        document.write("hello")
    </script>
</head>

在这里插入图片描述
2.使用单引号双引号都可以,但是不要混着用

3.引号不能嵌套,双引号里不能放双引号,单引号里面不能放单引号,但是单引号里面可以放双引号
(在字符串中我们可以使用 \作为转义字符,当表示一些特殊符号时可以使用\进行转义)

<head>
    <script>
        var c = "我说:\"今天\t天气\n真不错\" "
        console.log(c)
    </script>
</head>

在这里插入图片描述

2.Number 数值

1.在js中所有的数值都是 Number 类型,包括整数和浮点数
可以运用一个运算符 typeof 来检查一个变量类型

<head>
    <script>
        var a = 123.321;
        var b = "123.321";
        console.log(a);
        console.log(b);
        console.log(typeof a);
        console.log(typeof b);
    </script>
</head>

在这里插入图片描述
2.js中可以表示的最大的数字:Number.MAX_VALUE(1.7976931348623157e+308)
如果使用Number表示的数值超过最大值,则会返回一个 Infinite 表示正无穷

<head>
    <script>
        var c = Number.MAX_VALUE;
        var d = Number.MAX_VALUE * Number.MAX_VALUE;
        console.log(c);
        console.log(d);
    </script>
</head>

在这里插入图片描述
3.js中可以表示的无穷小:Number.MIN_VALUE(5e-324)
如果使用Number表示的数值小于最大值,则会返回一个 0

<head>
    <script>
        var e = Number.MIN_VALUE;
        var f = Number.MIN_VALUE * Number.MIN_VALUE;
        console.log(e)
        console.log(f)
    </script>
</head>

在这里插入图片描述

4.NAN 是一个特殊数字,表示 not a number
使用 typeof 检查 infinite 和 nan 时都会返回一个 number

5.在js中整数的运算基本可以保证精确
如果使用js进行浮点数运算,可能得到一个不精确的结果

3.Boolean 布尔值

布尔值只有两个:
true(逻辑真)
false(逻辑假)

<head>
    <script>
        var a = true;
        var b = false;
        console.log(a)
        console.log(typeof a)
        console.log(b)
        console.log(typeof b)
    </script>
</head>

在这里插入图片描述

4.Null 空值

Null 类型的值只有一个,就是null
null这个值专门用来表示一个为空的对象
注意:使用typeof检查null时返回的是 object

<head>
    <script>
        var a = null;
        console.log(a)
        console.log( typeof a)
    </script>
</head>

在这里插入图片描述

5.Undefined 未定义

Undefined 类型的值也只有一个,就是undefined
当不给一个变量赋值时,他的值就是undefined
注意:使用typeof检查undefined 时返回的也是undefined

<head>
    <script>
        var b;
        console.log(b);
        console.log( typeof b);
    </script>
</head>

在这里插入图片描述


6.强制类型转换-string

强制类型转换 指的是将一个数据类型强制转换为其他的数据类型

类型转换主要指的是,将其他数据类型,转换为:string / number / boolean

将其他数据类型转换为 string

方法一:调用被转换数据类型的toString()

该方法不会影响到原变量,它会将转换的结果返回
注意:null和undefined 这两个值没有 toString() 方法

<head>
    <script>
        var a = 123;
        console.log(a);
        console.log(typeof a);

        a = a.toString();
        console.log(a);
        console.log(typeof a);

        var b = a.toString();
        console.log(b);
        console.log(typeof b);

        var c = true;
        c = c.toString()
        console.log(c);
        console.log(typeof c);

        var d = null;
        d = d.toString()
        console.log(d);
        console.log(typeof d);

        var e = undefined;
        e = e.toString()
        console.log(e);
        console.log(typeof e);
    </script>
</head>

在这里插入图片描述

方法二:调用String()函数,并将被转换的数据作为参数传递给函数

使用 String() 函数做强制类型转换时,对于我们的Number 和Boolean 实际上就是调用 toString() 的方法
但是对于 null 和 undefined ,就不会调用 toString() 的方法,他会直接将 null 直接转换为"null"(将 undefined 直接转换为 " undefined ")

<head>
    <script>
        var a = 123;
        a = String(a);
        console.log(a);
        console.log(typeof a);

        var b = null;
        b = String(b);
        console.log(b);
        console.log(typeof b);

        var c = undefined;
        c = String(c);
        console.log(c);
        console.log(typeof c);
    </script>
</head>

在这里插入图片描述

7.强制类型转换-Number

方法一:调用Number() 函数

将string转换为number
1.如果该字符串是纯数字,则直接将其转换为数字
2.如果该字符串含有非数字内容,则转换为NaN
3.如果该字符串是空字符串或者全是空格的字符串,则转换为0

<head>
    <script>
        var a = "1e+2";
        a = Number(a);
        console.log(a);
        console.log(typeof a);

        var b = "abc";
        b = Number(b);
        console.log(b);
        console.log(typeof b);

        var c = "   ";
        c = Number(c);
        console.log(c);
        console.log(typeof c);
    </script>
</head>

在这里插入图片描述
其余三种基本数据类型的 Number 转换结果:

<head>
    <script>
        var d = true;
        d = Number(d);
        console.log(d);
        console.log(typeof d);

        var e = false;
        e = Number(e);
        console.log(e);
        console.log(typeof e);

        var f = null;
        e = Number(f);
        console.log(f);
        console.log(typeof f);

        var g = undefined;
        g = Number(g);
        console.log(g);
        console.log(typeof g);
    </script>
</head>

在这里插入图片描述

方法二:parseInt() 和 parseFloat()

parseInt() 把一个字符串转换为一个整数(可以利用这个方法取整数)
parseInt() 可以将一个字符串中有效的整数内容取出来然后转换为Number

parseFloat() 把一个字符串转换为一个浮点数
parseInt() 可以将一个字符串中有效的浮点数内容取出来然后转换为Number

可以在 parseInt() 中传递第二个参数,来指定数字进制

<head>
    <script>
        var a = "123.123m123";
        a = parseInt(a);
        console.log(a);
        console.log(typeof a);

        var b = "123.123m123";
        b = parseFloat(b);
        console.log(b);
        console.log(typeof b);
    </script>
</head>

在这里插入图片描述
如果对非 string 使用 parseInt() 和 parseFloat() 它会先将其转换为 string 然后再操作


8.转换为Boolean

方法:使用 Boolean() 函数

1.我们如果将Number 转为Boolean 时,除了 0 和 NaN 是false,其余的都是true

2.我们如果将String 转为Boolean 时,除了空串是 false,其余的都是true

3.Null 和 Undefined 转换为 Boolean 时,都是 false

4.对象也会转换为true

<script>
    var a = 2;
    a = Boolean(a);
    console.log(a);
    console.log(typeof a);

    var b = 0;
    b = Boolean(b);
    console.log(b);
    console.log(typeof b);

    var c = "";
    c = Boolean(c);
    console.log(c);
    console.log(typeof c);

    var d = NaN;
    d = Boolean(d);
    console.log(d);
    console.log(typeof d);

    var e = null;
    e = Boolean(e);
    console.log(e);
    console.log(typeof e);

    var f = undefined;
    f = Boolean(f);
    console.log(f);
    console.log(typeof f);
</script>

在这里插入图片描述


9.运算符

通过运算符可以对一个或多个值进行运算,并获取运算结果
比如:typeof 就是运算符,可以获得一个值的类型,它会将该值的类型以字符串的方式返回(number string boolean undefined boject)

(1)算术运算符

当对非 number 类型的值进行运算时,会将这些值转换为 Number 然后再运算(字符串加法除外)

任何值与NaN 做运算都得NaN

+

1.如果对两个字符串进行加法运算,则会做拼串(将两个字符串拼接在一起,并返回)
2.任何值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串操作
3.可以利用 ② 的特点,来将任意的数据类型转换为String,只要给该数据 +"" 即可,实际上也是调用 String() 函数

<script>
    var a = 123;
    a = a + "";
    console.log(a);
    console.log(typeof a);

    var b = 456;
    console.log("b = "+b);

    var c = 1 + 2 + "3";
    console.log(c);
</script>

在这里插入图片描述

-

当对非 number 类型的值进行运算时,会将这些值转换为 Number 然后再运算(字符串加法除外)

<script>
    var a = 100;
    a = a - "5";
    console.log("a = "+a);
    console.log(typeof a);

    var b = 100;
    
    b = b - "abc";
    console.log("b = "+b);
    b = 100 - "";
    console.log("b = "+b);
    b = 100 - null;
    console.log("b = "+b);
    b = 100 - true;
    console.log("b = "+b);
    b = 100 - false;
    console.log("b = "+b);
    b = 100 - undefined;
    console.log("b = "+b);
</script>

在这里插入图片描述

* (类似减法)

/ (类似减法)

%

取余数

<script>
    var a = 10;
    a = a % 3;
    console.log("a = "+a);

    var b = "abc";
    b = b % 3;
    console.log("b = "+b);
</script>

在这里插入图片描述

任何值做 - * / 运算时都会自动转换为Number

可以利用这一特点进行类型转换(-0 *1 /1)

<script>
    var a = "123";
    a = a - 0;
    console.log("a = "+a);
    console.log(typeof a);
    
    var b = "abc";
    b = b - 0;
    console.log("b = "+b);
    console.log(typeof b);

    var c = null;
    c = c - 0;
    console.log("c = "+c);
    console.log(typeof c);

    var d = true;
    d = d - 0;
    console.log("d = "+d);
    console.log(typeof d);

    var e = false;
    e = e - 0;
    console.log("e = "+e);
    console.log(typeof e);

    var f = undefined;
    f = f - 0;
    console.log("f = "+f);
    console.log(typeof f);
</script>

在这里插入图片描述


(2)一元运算符

只需要一个操作数

当对非 number 类型的值进行运算时,会将这些值转换为 Number 然后再运算(字符串加法除外)

+ 正号

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

    var b = true;
    b = b + 1 + + "abc";
    console.log("b = "+b);

    var c = true;
    c = c + 1 + "1";
    console.log("c = "+c);
    c = true + 1 + + "1";
    console.log("c = "+c);
</script>

在这里插入图片描述

- 负号

类似于 一元运算符中的 + 正号

自增

自增分两种:
1.先++(++a)即先自增再赋值
2.后++(a++)即先赋值再自增

<script>
    var a1 = 1;
    a1++;
    console.log("a1 = "+a1);

    var a2 = "5";
    a2++;
    console.log("a2 = "+a2);

    var a3 = "abc";
    a3++;
    console.log("a3 = "+a3);

    var a4 = true;
    a4++;
    console.log("a4 = "+a4);

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

在这里插入图片描述

自减

类似于 自增

(3)逻辑运算符

js含有三种逻辑运算符

!非

对一个值进行非运算
1.如果对布尔值进行非运算,则会对布尔值进行取反
2.如果对非布尔值进行非运算,则会将其转换为布尔值,再进行布尔值取反
3.可以利用该特点,来将一个其他的数据类型转换为布尔值(取反两次,即 !!)

&& 与(且)

类似 c

1.如果两个值都为 true ,则返回后边的值
2.如果两个值都为 false ,则返回前面的值
①②用短路逻辑理解,第一个值为true则返回第二个值,第一个值为false则返回第一个值
<script>
    var a;
    a = 'abc' && 3 ;
    console.log("a = "+a);
    a = 3 && 'abc' ;
    console.log("a = "+a);
    a = 0 && true;
    console.log("a = "+a);
    a = '' && 0 ;
    console.log("a = "+a);
    a = NaN && 0 ;
    console.log("a = "+a);
</script>

|| 或

类似 c

如果第一个值为 true ,则返回第一个值
如果第一个值为 false ,则返回第二个值

(4)赋值运算符

(5)关系运算符

如果关系成立它会返回 true ,如果关系不成立则返回 false

对非数值进行比较时,会将其先转换为数字在进行比较

1.任何值与 NaN 进行任何比较,返回值都是false
2.如果两边都是字符串,比较的是字符串的字符编码 Unicode(ASCII码)
3.字符串的比较是一位一位的进行比较,如果两个一样才进行下一位的比较
注意:在比较两个字符串型色数字时,一定一定一定一定要转型
<script>
    var a = true ;
    a = a + 1 + +'11';
    console.log("a = "+a);
</script>

在这里插入图片描述

(6)相等运算符

用来比较两个值是否相等
如果相等返回 true ,如果不等返回 false
用 == 来表示相等运算
用 ! = 来表示不等运算

注意:如果使用 == 或 ! = 来比较两个值时,如果类型不同,则会自动进行类型转换,将其转换为相同的类型
1.如果将 Undefined 与 Null 进行比较则会返回 false
2.NaN不与任何值相等,包括他本身

如果要判断一个变量是否为 NaN
可以引用 isNaN() 函数

=== :全等(不会进行自动进行类型转换,如果两个值不等,则直接返回false,如果两个值相等,则直接返回true)
! == :不全等(不会进行自动进行类型转换,如果两个值不等,则直接返回true,如果两个值相等,则直接返回false)

<script>
    console.log("\u2620\t\u2654")
    var a = NaN,b = 'abc',c = 1;
    a = isNaN(a);
    b = isNaN(Number(b));
    c = isNaN(c);
    console.log("a = "+a);
    console.log("b = "+b);
    console.log("c = "+c);
    b = Number(b);
    console.log("b = "+b);
</script>

在这里插入图片描述

(7)条件运算符(三元运算符)

语法:
条件表达式 ? 语句1 : 语句2
条件运算符在执行时,首先对条件表达式进行求值
1.如果该值为true,则执行语句1,并返回执行结果
2.如果该值为false,则执行语句2,并返回执行结果
注意:如果条件表达式的求值结果为非布尔值,那么会将其转换为布尔值然后再进行运算

例如:

<script>
	var max , a , b ;
    a = 1; b = 2;
	max = a > b ? a : b ;
	console.log("max = "+max);
</script>

在这里插入图片描述


@[TOC] # 1.运算符的优先级 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e7e6597dbd16484c9fe8c8fb653b6071.png)

10. if 语句

语法一:

if(条件表达式){
	语句...
}

if 语句在执行时,会先对条件表达式进行求值判断
如果表达式的值为true,则执行if后的语句
如果条件表达式的值为false,则不会执行if后的语句

可以使用代码让 if 控制多条语句

<script>
    var a = 20;
    if(a>10 && a<=20){
        console.log("a = "+a);
        console.log("a大于10且小于等于20");
    }
</script>

在这里插入图片描述

语法二:

if(条件表达式){
	语句...
}
else{
	语句...
}

if…else…语句在执行时,会先对条件表达式进行求值判断
如果表达式的值为true,则执行if后的语句
如果条件表达式的值为false,则执行 else 后的语句

语法三:

if(条件表达式){
	语句...
}
else if{
	语句...
}

... ...

else{
	语句...
}

if…else if… else语句在执行时,会先对条件表达式进行求值判断
会从上往下依次对条件表达式进行求值判断
如果值为true,则执行当前语句
如果值为false,则继续往下判断
如果所有条件表达式的值都为false,则执行else的语句

注意:该语句中只有一个代码块会被执行,执行完之后就会跳出该 if 结构

<script>
    var age = 35;
    if(age >= 60){
        console.log('您已经退休了');
    }
    else if(age>18&&age<60){
        console.log('您还可以工作');
    }
    else{
        console.log('你还未成年,好好读书');
    }
</script>

在这里插入图片描述

小练习

prompt() 函数

prompt()函数的返回值是string类型,可以运用 + 使其变成number类型
prompt() 可以弹出一个提示框,该提示框中会带有一个文本框
用户可以在文本框中输入一段内容,该函数需要一个字符串作为参数
该字符串将会作为提示框的提示文字

用户输入的内容将会作为函数的返回值返回,可以定义一个变量来接受该内容
在这里插入图片描述

var score = prompt("请输入小明期末考试成绩:");
if(score<0||score>100||isNaN(score)){
    alert("输入错误");
}
else{
    if(score == 100){
        alert("可以成为尊贵的拯救者用户");
    }
    else if(score>=80&&score<100){
        alert("奖励一台iphone 15s");
    }
    else if(score>=60&&score<80){
        alert("奖励一本五年高考三年模拟");
    }
    else{
        alert("有个大比兜");
    }

在这里插入图片描述

 var a,b,c;
 a = prompt("请输入男生的身高(cm)");
 b = prompt("请输入男生的存款(w)");
 c = prompt("请输入男生的颜值(px)");
 alert("身高:"+a+",存款:"+b+",颜值"+c);
 if(a>180&&b>10000000&&c>500){
     alert("女士说:我一定要嫁给你");
 }
 else if(a>180||b>1000||c>500){
     alert("女士说:凑合吧,比上不足,比下有余");
 }
 else{
     alert("女士说:赶紧爬");
 }

在这里插入图片描述

   var a,b,c;
   a = +prompt("请输入a的值");
   b = +prompt("请输入b的值");
   c = +prompt("请输入c的值");
   if(a>b){
       if(a>c){
           if(b>c)
               alert("a = "+a+",b = "+b+",c = "+c+"\n"+"a>b>c");
           else
               alert("a = "+a+",b = "+b+",c = "+c+"\n"+"a>c>b");
       }
       else
           alert("a = "+a+",b = "+b+",c = "+c+"\n"+"c>a>b");
   }
   else{
       if(b>c){
           if(a>c)
               alert("a = "+a+",b = "+b+",c = "+c+"\n"+"b>a>c");
           else
               alert("a = "+a+",b = "+b+",c = "+c+"\n"+"b>c>a");
       }
       else
           alert("a = "+a+",b = "+b+",c = "+c+"\n"+"c>b>a");
   }

11.switch 语句

语法:

switch(条件表达式){
    case 表达式:
    	语句...;
    	break;
    case 表达式:
    	语句...;
    	break;
    case 表达式:
    	语句...;
    	break;
... ...
	default:
		语句...;
		break;

在执行时会依次将case后的表达式的值和switch后的表达式的值进行全等比较
如果比较结果为true,从当前case处开始执行代码,只要在当前case后的代码都会执行,除非遇到 break 或运行结束
如果比较结果为false,则继续向下比较
如果所有的比较结果都为 false 则执行 default 后的语句

示例:

 var num = +prompt("请输入1~10的数字");
 switch(num){
     case 1:
         alert("1 的繁体字是:壹");
         break;
     case 2:
         alert("2 的繁体字是:贰");
         break;
     case 3:
         alert("3 的繁体字是:叁");
         break;
     case 4:
         alert("4 的繁体字是:肆");
         break;
     case 5:
         alert("5 的繁体字是:伍");
         break;
     case 6:
         alert("6 的繁体字是:陆");
         break;
     case 7:
         alert("7 的繁体字是:柒");
         break;
     case 8:
         alert("8 的繁体字是:捌");
         break;
     case 9:
         alert("9 的繁体字是:玖");
         break;
     case 10:
         alert("10 的繁体字是:拾");
         break;
     default:
         alert("输入错误");
         break;
 }

12.while 循环语句

语法:

while(条件表达式) {
		语句... ...
}

在执行时,先对条件表达式进行求值判断,如果值为true,则执行循环体,循环体结束后继续对循环体进行判断,直到求值为false则退出循环

示例:

var i,n;
i=1;
n = +prompt("请输入终止数:");
while(i<=n){
    document.write("i = "+i+"<br>");
    i++;
 }

13.do…while 循环语句

语法:

do {
	语句... ...
}while(条件表达式)

在执行时,会先执行循环体中的内容,在循环体内的内容执行完毕后,在对while后的条件表达式进行判断,如果判断结果为true,则继续执行循环体,直到判断结果为false则退出循环

示例:

var i,n;
i=1;
n = +prompt("请输入终止数:");
do{
    document.write("i = "+i+"<br>");
    i++;
}while(i<=n);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

O_oregou

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

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

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

打赏作者

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

抵扣说明:

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

余额充值