JS相关知识

1.JS的发展过程 历史回顾、能做什么

       给页面添加动态效果
    2.JS是什么              简介、实现、版本
       运行在客户端浏览器的脚本语言   
    3.JS语言特点和定位       语言特点、与web开发流程区别     
       弱类型  面向对象  

       java    

       ecmascript     5    es5 
                           es6   es2015 

js的组成

ECMAScript 核心 数据类型 运算符 语句 函数 数组 字符串
DOM 文档对象模型
BOM 浏览器对象模型

四种输出方式

  1. 打印到页面上
        document.write("输出的内容");     识别HTML标签
  2. 在控制台中输出
        console.log("输出的内容");
  3. 输出到浏览器的提示框
        alert("输出的内容");  
  4. 输入到浏览器的输入提示框
        prompt(“输入的内容”,默认值)

js的基本语法

1.JS的引入方式

两种 1.html页面内 2. 引入外部js文件

  2.标识符               
       1.概念  变量、函数、属性的名字,或者函数的参数   
       2.命名规则  a.字母数字下划线$组成,不能以数字开头, b.严格区分大小写  c.不能是JS关键字和保留字   

  3.变量及变量声明    
       1. 先声明,后赋值   2.边声明,边赋值    3.一次性声明多个变量并赋值

js注释: 单行注释 // (快捷键 Ctrl+?)
多行注释 /* 注释的内容 */

  js引入:  内部引入    直接在页面的script标签对里面写代码    

一般情况下script标签放在body的最下面
外部引入 head标签里面

js基本运算符

typeof 操作符
检测变量的数据类型,返回值是字符串的形式,返回值有以下6种:字符串、数值、布尔、undefined、object、function

     JS数据类型: 简单数据类型  5种                  复杂数据类型 1种
     1.String    " "   ''          转义字符(特殊的字符串) \        \n 换行    \"
     2.Number    
        整数 小数   
        NaN   Not a number     代表无法计算或者计算超出范围 、     

(1)NaN与任何值都不相等,包括本身
(2) 任何与NaN的操作结果都是NaN
3.Boolean true false
4.Undefined undefined 变量声明未赋值
5.Null null 显式的把值设置未null

数据类型转换

 **强制类型转换:** 
                toString()   --转换除 Null  和Undefined 的            String()  ----转换任意类型的   
                parsetInt()  parseFloat()   ---字符串转换为数值         Number()   --- 转换任何数据类型的
                Boolean()     转换为假值的7个值
**隐式数据类型转换:** 
        +    - 

        补充:
        x+''
        x-0     +x
        !!x

运算符

算术运算符 + - * / % ++ –
逻辑运算符 && || !

&& 并且 全真为真( 左右的结果都为真),其余为假
|| 或 全假为假,其余为真 ,只要有一个为真,就是true
! 取反 - 真变假,假变真

  比较运算符  > <  >=   <=   ==  ===  !=   !==

比较运算符 - 关系运算符 结果:true false
> < >= <=
== 判断相等,只要值相等就相等
=== 全等,不仅值相等,数据类型也要相等
!= 不相等,与 == 结果相反
!== 非全等,与 === 结果相反

  赋值运算符  = += -= *= /= %=
  其他运算符 - 三元运算符 条件表达式 ? 条件表达式为真执行的语句 : 条件表达式为假执行的语句

js语句

语句:js里面的一整句话或者表达式,以分号结尾

  分号:代表一个语句执行结束

  分支/条件语句:条件语句是通过判断指定表达式的值来决定执行还是跳过某些语句
       单分支、双分支、多分支
   if(表达式){
         表达式为真
      }else{
         表达式为假
      }
if(表达式1){
    表达式1为真
  }else if(表达式2){
      表达式1为假2为真
  }else{
      表达式12都为假
  }

switch语句

 switch (表达式/变量) {
                case 变量的值:
                    // 执行语句1
                    break;
                case 变量的值:
                    // 执行语句2
                    break;
            
                default:
                    // 其他条件都不满足,执行语句end
                    break;
            }
        switch的条件---变量不会发生数据类型转换    ===

简易计算器

 <script>
        //驼峰命名法    javaScript     
        var ltNum1 = Number(prompt('请输入第一个数'));
        var ltNum2 = Number(prompt('请输入第二个数'));
        var ltFu = prompt('请输入运算符');
        var result;
        // result 结果
        switch (ltFu) {
            case '+':
                result = ltNum1 + ltNum2;
                break;
            case '-':
                result = ltNum1 - ltNum2;
                break;
            case '*':
                result = ltNum1 * ltNum2;
                break;
            case '/':
                result = ltNum1 / ltNum2;
                break;
            case '%':
                result = ltNum1 % ltNum2;
                break;
            default:
                alert('请输入正确的算术运算符');
                break;
        }

        console.log('运算结果是:' + result);
    </script>

循环语句

循环语句就是程序执行的一个回路,可以让一部分代码重复执行

   for 
       for(初始化变量;循环条件检测;更新变量值){

       }
   while

       while(条件){
         //条件为true执行的代码
      }
    
    do while
  do {
     //先执行一次再判断条件
  } while (条件);
    当表达式条件不满足的 while不会执行,但是do-while会执行一次

跳转语句

break 结束退出循环
continue 跳过当次循环,执行下一次
Break会影响后面循环的执行,执行后直接结束整个循环,但是continue不会影响后面循环的继续执行

函数概念定义

函数概念:函数是由事件驱动或者被调用的时候执行的可被重复利用的代码块, 函数是一组可以随时随地运行的语句

    **作用:**

使程序变得简洁清晰
易于代码维护
提高了代码的复用性,提高程序开发的效率

    函数定义          
       function 函数名(参数1,参数2){
           函数体 ---函数里面要执行的代码块
       }
       
    函数创建 --
  第一种创建函数的方式 (- 具名函数  ---函数声明)
       function 函数名(参数1,参数2){
           函数体
       }
 
第二种创建函数的方式  函数表达式  -- 匿名函数
   var fun = function (参数1,参数2){
        函数体
     }
 
   第三种创建函数的方式,不常用。了解
     var fun1 = new Function('a','b','alert(a*b)');
     fun1(3,4);  
   

函数的参数

// 形参 ---- 定义函数写在() 里面
// 实参 ----- 函数调用的时候 写在()里面并且会传给形参的
// 一般情况下, 形参和实参是一一对应, 函数调用的时候会把实参传递给形参
形参 --函数创建的时候
实参 —函数调用的时候

   形参和实参一一对应

   实参大于形参-----
   arguments 对象 ---创建了函数,arguments存在,arguments里面存的是所有的实参;
   arguments[0]  第一个实参
   arguments[1]  第二个实参

return的作用

// 默认情况下,函数的返回值是undefined // return
1.函数的返回值 2.终止当前函数的运行

变量的作用域

变量的作用域:变量的作用范围 —全局作用域与函数作用域
全局变量:全局变量就是定义在函数外部的变量,在当前文件内有效
局部变量:局部变量就是定义在函数内部的变量,这个变量只能在函数内部使用

  js的预解析    
  预解析的顺序是从上到下,函数的优先级高于变量,函数声明提前到当前作用域最顶端,在var之上。
  函数执行的时候,函数内部才会进行预解析,如果有参数,先给实参赋值再进行函数内部的预解析。

    1.遇到 var  function  先存到内存中,赋值undefined   全局变量a  全局函数fun1 ---在fun1里面存局部变量
    2.赋值  
  函数提升与变量提升
  当js中函数或变量在未声明之前使用,
  那么函数或变量的声明将被提升到当前作用域的最顶部, 这就叫变量提升。
 
  函数的生命周期:函数运行结束--函数以及里面的变量被js的垃圾回收机制回收了
  代码的执行顺序 :代码从上到下执行--函数只有在调用的时候才会执行

数组定义

数组:Array 对象用于在单个的变量中存储多个值,用来存储多组数据的容器(变量);

    数组一般是由中括号包裹,元素之间使用逗号分隔,数组的长度也就是数组中元素的个数使用length获取,数组中具有索引下标,它们是
  从0开始的,通过对应的索引下标可以取到元素中对应的值。
     数组中的元素可以是js中任意数据类型的值
     当数组对象指定长度时,我们也可以存储多余这个长度的元素

数组的创建方式:

  1. 使用字面量的方式创建  var arr = [10,20.30,true,"Hello",new Date(),function(){},[12,12,34],Math.random(),null,undefined]
   2. 使用new关键字来创建一个对象   var arr = new Array(12,34,"hello")
                              var arr = new Array(5);

数组常用方法

push() 向数组的末尾添加一个或更多元素,并返回新的数组长度。
unshift() 向数组的开头添加一个或更多元素,并返回新的长度

    shift()	    删除并返回数组的第一个元素。  //无参数    
    pop()	      删除数组的最后一个元素并返回删除的元素。 // 无参数
    splice()	  从数组中添加或删除元素 或者替换元素
           参数1: 下标    
           参数2: 数量
           参数3...4...5 添加的元素
           // 返回的是删除的元素---数组
    注意:添加和删除的方法,改变了原数组的长度和元素

concat() 拼接一个或多个数组;返回拼接后的数组
join() 根据指定的分隔符(seperator)进行切割,返回一个字符串,参数缺省以逗号作为分隔符 (数组连接成字符串)
slice() 选取数组的的一部分,并返回一个新数组 获取数组中部分元素并返回: 不会影响原数组(截取)

  // 以上三个方法不会影响原数组
   与索引相关的方法: 

indexOf() 匹配要查找的元素在数组中第一次出现的索引位置 ,array.indexOf(item,start)
lastIndexOf() 匹配要查找的元素在数组中最后一次出现的索引位置

      注意:以上两个方法去查找元素,如果找不到,返回-1
      //  第二个参数默认省略, 如果有,下标

  //不会影响原数组

reverse() 反转数组的元素顺序 ; 改变了原数组的顺序 (原来的数组发生变化)
sort() //排序 — 影响原数组 默认升序

数组检测

  1. instanceof arr instanceof Array
    2. isArray() Array.isArray(arr)
    // 如果是数组返回结果是true ,否则false

冒泡排序

 var arr = [3456, 6, 777, 32, 5, 342, 67, 344]
            // 总共比较多少次
        for (var j = 0; j < arr.length; j++) {
            // 里层循环每轮比较次数
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] > arr[i + 1]) {
                    var tmp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = tmp;
                }
            }
        }
        console.log(arr);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值