关卡一: JavaScript基础语法

目录

一、JavaScript基础

JavaScript 一种运行在客户端的脚本语言

1、作用:

2、JS 的组成

3、JS 编写位置

4、变量(variable)

5、数据类型

6、数据类型转换

7、其他

二、JavaScript操作符(运算符operator)

三、JavaScript流程控制和循环

1、流程控制

2、循环

四、数组


一、JavaScript基础

JavaScript 一种运行在客户端的脚本语言

1、作用:

  • 表单动态校验(密码强度检测)(JS产生最初的目的 )
  • 网页特效
  • 服务端开发(Node.js)
  • 桌面程序(Electron)
  • App(Cordova) 
  • 控制硬件-物联网(Ruff)
  • 游戏开发(cocos2d-js)

2、JS 的组成

  1. ECMAScript
  2. DOM——文档对象模型
  3. BOM——浏览器对象模型

3、JS 编写位置

  • 行内式

        开始标签内,把事件和js代码耦合在一起

<input type="button" value="点我试试" onclick="alert('Hello World')" />
  • 内嵌式(常用)

        标签 script 内

<script>
alert('大家好才是真的好!');
</script>
  • 外部JS文件

        js文件内,然后引入到html文件里

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

4、变量(variable)

        简单来说就是存储数据值的容器,也可以说它是一个装东西的盒子。变量的初始化,即声明变量并赋值。

变量命名规范:

  • 由字母(A-Za-z)、数字(0-9)、下划线(_)、美元符号( $ )组成,如:usrAge, num01, _name;
  • 严格区分大小写;var app; 和 var App; 是两个变量;
  • 不能以数字开头;18age  是错误的;
  • 不能是关键字、保留字;例如:var、for、while;
  • 变量名必须有意义;
  • 遵守驼峰命名法;首字母小写,后面单词的首字母需要大写。

5、数据类型

  1. 数字型 Number 数字类型既可以保存整数,也可以保存小数(浮点数)
  2. 字符串型 String  转义符 \n 换行符
  3. 布尔型 Boolean
  4. Undefined
  5. Null

typeof 可用来获取检测变量的数据类型

6、数据类型转换

  • 转换为字符串类型
  1. toString( )
  2. String( ) 强制转换
  3. 加号拼接字符串(隐式转换)(常用)
  • 转换为数字型(重点)
  1. parseInt
  2. parseFloat
  3. Number强制装换
  4. 隐式转换(+ - * /)是我们在进行算数运算的时候,JS自动转换了数据类型
  • 转换为布尔型

        Boolean( )函数

7、其他

1.字面量

        字面量无法更改,一般不会直接用。

2.标识符

        在JS中,程序员自己命名的内容都是标识符。

  • 由数字、字母、下划线和$组成;
  • 不可用数字开头;
  • 命名必须有意义;
  • 标识符不能是关键字或保留字。

3.关键字:是指JS本身已经使用了的字,不能再用它们充当变量名、方法名。

    包括:break、case、catch、continue、default、delete、do、else、finally、for、function、if、in、instanceof、new、return、switch、this、throw、try、typeof、var、void、while、with 等
4.保留字:实际上就是预留的“关键字”,意思是现在虽然还不是关键字,但是未来可能会成为关键字,同样不能使用它们当变量名或方法名。
    包括:boolean、byte、char、class、const、debugger、double、enum、export、extends、fimal、float、goto、implements、import、int、interface、long、mative、package、private、protected、public、short、static、super、synchronized、throws、transient、volatile 等

二、JavaScript操作符(运算符operator)

1、四则运算符(二元运算符)
        + - * / :如果加号两边都是数字,就会进行四则运算;如果加号两边有一个或两个都是字符串,那么就会进行字符串拼接。

浮点数的精度问题

  • 浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数
  • 不要直接判断两个浮点数是否相等

2、递增和递减运算符(一元运算符)

  • 前置型:先计算再赋值;++ -- 写在变量后面,变量先进行其他运算,再执行自增/自减操作
  • 后置型:先赋值再计算;++ -- 写在变量前面,变量先进行自增自减操作,再参与其他运算

3、赋值运算符(二元运算符)

  • =:将运算符右边的值直接赋值给左边的变量
  • +=、-=:加、减一个数后再赋值
  • *=、/=、%=:乘、除、取余后再赋值

4、比较运算符

>、<、>=、<=、==、!=、===、!==
==:只比较值
===:除了比较值,还比较数据类型
                都会有一个结果,可以使用变量保存这个结果,结果是布尔类型的数据
5、逻辑运算符(二元运算符)

  • && 与运算(且)

        规则:只有两个变量都是 true 时,结果才为 true;只要有一个 false,那结果就是 false。

  • || 或运算(或)

        规则:只有两个变量都是 false 时,结果才为false;只要有一个 true,结果就是 true。

  • 逻辑非

也叫作取反运算符(一元运算符),用来取一个布尔值相反的值,如 true 的相反值是 false:

var isok = !true;
console.log(isok);  // false
  • 短路运算(逻辑中断)

        原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值

三、JavaScript流程控制和循环

1、流程控制

  • if 语句
// 条件成立执行代码,否则什么也不做
if (条件表达式) {
    // 条件成立执行的代码语句
}
  • if else 语句(双分支语句)
// 条件成立  执行 if 里面代码,否则执行else 里面的代码
if (条件表达式) {
    // [如果] 条件成立执行的代码
} else {
    // [否则] 执行的代码
}
  • if else if 语句(多分支语句)
// 适合于检查多重条件。
if (条件表达式1) {
    语句1;
} else if (条件表达式2)  {
    语句2;
} else if (条件表达式3)  {
   语句3;
 ....
} else {
    // 上述条件都不成立执行此处代码
}
  • switch 分支流程控制
switch( 表达式 ){ 
    case value1:
        // 表达式 等于 value1 时要执行的代码
        break;
    case value2:
        // 表达式 等于 value2 时要执行的代码
        break;
    default:
        // 表达式 不等于任何一个 value 时要执行的代码
}

注意: 执行 case 里面的语句时,如果没有 break,则继续执行下一个 case 里面的语句

2、循环

  • for

        当循环的次数确定,知道执行次数的时候用

for(初始化变量; 条件表达式; 操作表达式){
    // 循环体;
}
  • for循环嵌套
for (外循环的初始; 外循环的条件; 外循环的操作表达式) {
    for (内循环的初始; 内循环的条件; 内循环的操作表达式) {  
       需执行的代码;
   }
}
  • while

        当循环次数不确定,不知道具体执行次数时,while 方法使用起来更加方便,更加好理解

while (条件表达式) {
    // 执行循环体代码
}
  • do while

        先执行一次循环体,再判断,do while 循环语句至少会执行一次循环体代码

do {
    // 循环体代码 - 条件表达式为 true 时重复执行循环体代码
} while(条件表达式);

注意:break 是结束整个循环体,continue 是结束单次循环。

四、数组

        数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素;数组是一种将一组数据存储在单个变量名下的优雅方式。
1、创建数组

  • 利用  new 创建数组 
    var 数组名 = new Array() ;
  • 利用数组字面量创建数组
     var  数组名 = [];

2、访问数组
        索引 (下标) :用来访问数组元素的序号(数组下标从 0 开始);
        数组可以通过索引来访问、设置、修改对应的数组元素,可以通过“数组名[索引号]”的形式来获取数组中的元素。
3、遍历数组
        通过 for 循环索引遍历数组
4、数组长度
        “数组名.length”可以访问数组长度
5、新增元素

  • 组[ 数组.length ] = 新数据;
  • 修改数组索引号追加数组元素

6、冒泡排序
        一种算法,把一系列的数据按照一定的顺序进行排列显示(从小到大或从大到小)

数组示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数组</title>
    <script>
        var arr = [20, 18, 30, 21, 23, 24, 22, 32, 35];
        var newArr = []; // 初始newArr.length 为 0 
        var sum = 0;
        var aver = 0;
        var max = arr[0];
        var str = '';
        var symbol = '|';
        // var k = 0;
        console.log('数组长度是:' + arr.length);
        for (var i = 0; i < arr.length; i++) {
            // i是计数器,当索引号用,arr[i]是数组元素的第i个数组元素
            sum += arr[i];
            str += arr[i] + symbol;
            console.log(arr[i]); // 遍历
            if (arr[i] > 20) {
                newArr[newArr.length] = arr[i];
                // k++;
            }
        }
        aver = sum / arr.length;
        console.log('数组的和:' + sum, '数组的平均值:' + aver);
        console.log(str);
        console.log(newArr); // 筛选数组
        for (var j = 1; j < arr.length; j++) {
            if (arr[j] > max) {
                max = arr[j];
            }
        }
        console.log('数组最大值为:' + max);

        // 翻转数组
        var arr0 = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
        var newArr0 = [];
        for (var l = arr0.length - 1; l >= 0; l--) {
            newArr0[newArr0.length] = arr0[l];
        }
        console.log(arr0);
        console.log(newArr0);

        // 冒泡排序
        var arr = [220, 190, 140, 160, 150, 180, 170, 50, 150, 88, 108];
        for (var i = 0; i <= arr.length - 1; i++) {
            for (var j = 0; j <= arr.length - i - 1; j++) {
                if (arr[j] < arr[j + 1]) { // 从大到小
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        console.log(arr);
    </script>
</head>
<body>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值