js笔记

216 阅读5分钟

JavaScript是什么

1是一种运行在客户端(浏览器)的编程语言,实现人机交互效果,

2作用

网页特效(监听用户的一些行为让网页作出反馈),表单验证(针对表单数据的合法性进行判断),数据交换(获取后台的数据,渲染到前端) 服务端编程 (node.js)

3 js的组成

1648135316995.png

js书写位置

1内联

 <body>
    <!-- 不常用  编写代码的体验不好,很容易写错,  了解一下即可 -->
    <button onclick="alert('过万啦')">点击我 我就月薪过万</button>
    <button onclick='alert("也过万啦")'>点击我 我就月薪过万</button>
    <div onclick='alert("也过万啦")'>我来啦</div>
  </body>

代码写在标签内部,不常用,后面vue中会看到这种使用模式

2内部

 <body>
    <script>
      // 可以在这个里面写js代码,警告弹窗,注意括号里写单引号
      alert('你好 js 我呸');
    </script>
  </body>

直接写在html文件里面,用script标签包住

规范:script标签写在上面

3外部

 <body>

    <script src="./js/弹出窗口.js"> </script>
  </body>

代码写在以.js结尾的文件里

语法:通过script标签,引入到html页面中

js注释写法


    <script>
        // ctrl+/单行注释
        /* shift+alt+a多行注释 */
    </script>

1单行注释:ctrl+/

2多行注释shift+alt+a

js结束符

1648136764914.png

js输入输出语法

输出语法

1648136973942.png

  <body>
    <script>
      // 直接在 body标签中书写内容
       document.write("通过js加进去的内容")
          </script>
  </body>

<body>
    <script>
        // 推荐 控制台  log,简写log
      console.log('控制台打印1');
          </script>
  </body>
<body>
    <script>
       
      alert('页面弹出警告对话框');
          </script>
  </body>

输入语法

输入名字弹窗

<body>
    <script>
       // 输入
      prompt("请输入你的姓名")
          </script>
  </body>

1648137593963.png

输入输出配合使用

1648137799586.png

注意语法自定义名字不要加引号

<body>
    <script>
        // 获取用户的名称
      username = prompt("请输入你的姓名");

      // 打印出来 用户的名称,一种输入三种输出
      document.write(username);
         alert(username);
      console.log(username);
          </script>
  </body>

获取多个输入

  <script>
    
      username = prompt('你叫什么名字');
      address = prompt('你家住哪里');
      foods = prompt('你喜欢吃什么');
      music = prompt('你喜欢自己一个听音乐吗');
      sports = prompt('你喜欢运动');

      // 使用 一个 +  表示连接 
      console.log(username + address + foods + music + sports);
    </script>

使用+表示连接

变量是什么

1648186933348.png

变量的基本使用

1648302499413.png

1648302551100.png

   <script>
        // 变量名不能一样
        // 变量 我的姓名 创建变量
        let username;
        // 变量赋值
        username = '橙子';
        // 变量的使用
        console.log(username);

      // 声明变量的同时 也赋值 常用!
      let color = 'yellow';

      color = 'black'; // 变量更新
       
       // 一次性声明多个变量 同时赋值 
         let number1 = 20,
             name1 ='赵四';
        console.log(number1,name1);

    </script>

变量的交换

 <script>
             // 1 要创建三个变量
      let num1 = 101,
        num2 = 202,
        temp;

      // 2 设置 空的变量 存放num1的值
      temp = num1;

      // 3 设置num1 等于 num2
      num1 = num2;

      // 4 设置num2 等于之前num1的值(temp)
      num2 = temp;

      console.log(num1);
      console.log(num2);
      // 5 小结
      // 思路在于 要多创建一个变量 来存放临时的数据 即可 

          </script>

变量命名规则与规范

1648187057276.png

 <script>
     //变量不可以不允许使用重复声明
        // 创建一个变量 名字叫  let,var,if,for....内置的关键字都不能用
        // 可以以_,$符号开头,字母开头,不能以数字开头
        let _he = 123;
        let $he = 123;
        let he = 123;
        // 命名英文区分大小写
        // 命名要有意义,不要起无意义的命名
        // 小驼峰,首字小写,中间有大写字母
        let shopShop = 111;
        // 大驼峰,首字母大写,中间有大写字母
        let ShopShop = 111;

        

    </script>

数组

 <script>
        let names = ['西门','武松','楚留香','香妃']
       document.write(names[0])
       document.write(names[1])
       document.write(names[2])
       document.write(names[3])
    </script>
    

格式: let 数组名 = [ 数据1,数据2,数据3,数据4,数据n...]

取值: 数组名[0] 数组名[1] 数组名[2] 数组名[3]

1 数组是按顺序保存,所以每个数据都有自己的编号

2 计算机中的编号从0开始,所以小明的编号为0,小刚编号为1,以此类推

3 在数组中,数据的编号也叫索引或下标

4 数组可以存储任意类型的数据

JS 数据类型

注:JavaScript 中变量的值决定了变量的数据类型。

1648187468675.png

数据类型:数字型(number)

JavaScript 中的正数、负数、小数等 统一称为 数字类型。

注意不要加引号

  let money2 = 100;/正数
    let money1 = -200;/负数
    let money3 = 2.4;/小数

数据类型 – 字符串类型(string)

通过单引号( '') 、双引号( "")或反引号( ` )包裹的数据都叫字符串,单引号和双引号没有本质上的区别, 推荐使用单引号。

注意事项:

  1. 无论单引号或是双引号必须成对使用

  2. 单引号/双引号可以互相嵌套,但是不以自已嵌套自已(口诀:外双内单,或者外单内双)

  3. 必要时可以使用转义符 \,输出单引号或双引号

1648187890919.png

字符串的加法(字符串拼接)

  <script>
// 数字类型和字符串类型
      // 以上这两种类型 使用  加号 +   功能不一样
      // 数字类型使用 +  表示数字的相加

      let money1 = 100;
      let money2 = 200;

      let sum = money1 + money2; // 300
       console.log(sum);

      // 字符串类型 使用加号 表示两段文字的 拼接

      let userName = '奥特曼';
      let skill = '打怪兽';

      let msg = userName + skill;

      console.log(msg);
    </script>

模板字符串

<script>
      // 早些时候 写代码 都是这样来拼接的  看起来不太直观
      
      let every = '大家好';
      let age=100;
      console.log('你好-' + every + '-世界美好');
      console.log('你好' + '-' + every + '-' + '世界美好');


      // 你好-大家好-世界美好


      // 使用 反引号的方式来拼接 字符串 推荐!! 
      console.log(`你好-every-世界美好`);

      // 模版字符串 
      console.log(`你好-${every}-世界美好${age}`);// 变量 在反引号中 只能使用 ${every}  固定用法

      // 错误的演示
      console.log('你好-${every}-世界美好${age}'); 

      // 反引号和 ${} 两个是一对 要配套出现  。 .;..........
    </script>

1648188224064.png

数据类型 – 布尔类型(boolean)

表示肯定或否定时在计算机中对应的是布尔类型数据。 它有两个固定的值 true 和 false,表示肯定的数据用 true(真),表示否定的数据用 false(假)。

<script>
      /* 
      boolean 布尔  只有两种值  真  true 假 false
       */

      //  你吃饭了吗
      let isEat = true;

      // 你睡觉了没有

      let isSleep = false;

      // 有什么用 ? 还没有学习到  条件语句 暂时 感觉不到它的作用</script>

未赋值undefined

未定义是比较特殊的类型,只有一个值 undefined。

1 什么情况出现未定义类型? 只声明变量,不赋值的情况下,变量的默认值为 undefined,一般很少【直接】为某个变量赋值为 undefined。

1648303713402.png 2 工作中的使用场景:

我们开发中经常声明一个变量,等待传送过来的数据。 如果我们不知道这个数据是否传递过来,此时我们可以通过检测这个变量是不是undefined,就判断用户是否 有数据传递过来。

1648303836172.png

数据类型 – null(空类型)

null 表示 值为 空

let name = null

null 和 undefined 区别:

  1. undefined 表示没有赋值 ,用来试错
  2. null 表示赋值了,但是内容为空
  3. null 开发中的使用场景:
  4. 官方解释:把 null 作为尚未创建的对象 大白话: 将来有个变量里面存放的是一个对象,但是对象还没创建好,可以先给个null

检测数据类型

用于控制台测试结果类型使用

1648304330027.png

  <script>
        let num = 1
        let userName = '翠花花'
        let isEat = true
        let fods 
        let money = null

        console.log(typeof num);//mumber 类型
        console.log(typeof userName);//string 类型
        console.log(typeof isEat);//boolean 类型
        console.log(typeof fods);//undefined 类型
        console.log(typeof money);//object 类型
    </script>

类型转换

为什么需要类型转换

JavaScript是弱数据类型: JavaScript也不知道变量到底属于那种数据类型,只有赋值了才清楚。

坑: 使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算。

此时需要转换变量的数据类型。 通俗来说,就是把一种数据类型的变量转换成我们需要的数据类型。

隐式转换

某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。

规则: + 号两边只要有一个是字符串,都会把另外一个转成字符串 , 除了+以外的算术运算符 比如 - * / 等都会把数据转成数字类型

1648305184038.png

  • 小技巧: +号作为正号解析可以转换成Number
<script>
// 工作中 比较常用的隐式转换写法
      let num2 = '2';

      let num3 = num2 - 0; // num3 是一个数字类型
      console.log(typeof num3);

      // 最简洁的写法 //没有为什么 js内部就有这样的技巧  你知道会用即可 
      let num4 = +num2; //  也是可以的!
      console.log(typeof num4);//num3 是一个数字类型
    </script>

显式转换

概念: 自己写代码告诉系统该转成什么类型

转换为数字型 Number(数据) 转成数字类型

如果字符串内容里有非数字,转换失败时结果为 NaN(Not a Number)即不是一个数字 NaN也是number类型的数据,代表非数字

parseInt(数据) , 只保留整数 ; parseFloat(数据) ,可以保留小数

 <script>
        // 把一个真正的字符串强行转成数字会失败
       // let num1 = 'abg'
        //显示转换 转成数字类型
       // let num2 = Number(num1)
        //NaN不是一个数字但是是数字类型
        //其他类型转数字 成功=数字本身  失败=NaN
        let num1 = '9.9';
        let num2 = parseInt(9.9)  //常用变成整数
      //  let num2 = parseFloat(num1);  //少用保留小数
        let num3 = +num1; 
        console.log(num3)
        console.log(Number(num1));
    </script>

概念: 自己写代码告诉系统该转成什么类型

转换为字符型: String(数据) 变量.toString(进制)

标签字符串

  <script>
        //把内容输入到 body标签中
      //  document.write ("呵呵,我来了")
      //  document.write(' <h1>大标题</h1>')
     // let str = '<button>按钮</button>'
       let str = '<input type="text"> <button>按钮</button>'

      document.write(str)
      //反引号可以换行,建议使用单引号

    </script>