JS基础---变量、数据类型、类型转换

224 阅读1分钟

变量

1、变量是什么

简单来说就是计算机储存数据的'容器',它可以让计算机变的有记忆

  • 作用

用来存放数据的,需要注意它指的的是容器,而不是数据

2、变量基本使用☆

  • 声明变量
  1. 谁想要使用变量,首先要先创建变量
  2. 声明变量有两个部分组成,关键字 let(系统提供的专门用来声明变量的词语)+ 变量名(自定义命名,但是要有基本规范,起到见名知意的效果)
  • 变量赋值

定义一个变量后,你就可以初始化它,也就是赋值(=)。获取数据的方式是通过变量名来获得变量里面的数据,而不是赋值后面的字面量

  • 更新变量
  1. 变量赋值后,还可以通过简单地给它一个不同的值来更新它。

        <script>
            
            // 声明变量的同时存放了20这个数据
            let age = 20
            // 变量里面的数据变更为30
            age = 30 
            // 页面输出结果
            document.write(age)
        </script>
    
  2. **注意 **let 是不允许多次声明一个变量

    <script>
            
            // 声明变量的同时存放了20这个数据
            let age = 20
            // 这里不允许声明同一个变量
            let age = 30 
            // 输出会报错
            document.write(age)
        </script>
    

3、变量的本质-了解

变量是内存里的一块空间,用来存储数据。通俗点理解就是一个装东西的容器

4、变量命名规则与规范

  1. 不能用有特殊含义的字符,JavaScript 内置的一些英语词汇。例如:let、var、if、for等
  2. 只能用下划线、字母、数字、$组成,且数字不能开头
  3. 字母严格区分大小写,如 Age 和 age 是不同的变量
  4. 起名要带有含义,使人一看就知其义,并且尽量遵守遵守小驼峰命名法,即第一个单词首字母小写,后面每个单词首字母大写。例:userName

数据类型

既然计算机可以存储和处理大量的数据,那么我们为什么要给这些数据分类呢?

  1. 更加充分和高效的利用内存
  2. 也更加方便程序员的使用数据

1、数据类型☆

JS 数据类型整体分为以下两大类:

1、基本数据类型

  • Number 数字型

也就是我们数学中学习到的数字,可以是整数小数正数负数,这些统一称为数字类型

  • String 字符串型

通过单引号( '') 、双引号( "")或反引号( ` )包裹的数据都叫字符串,重点推荐使用单引号

注意事项:

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

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

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

    <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>
  • boolean 布尔型

只有两种值,一个是 真 true,一个是假 false

  • undefined 未定义型

表示没有赋值,创建了一个变量,但是里面却没有赋值,这时就会被定义undefined

  • null 空类型

表示创建了一个变量,赋值了, 但是这个值本身就空的,与undefined 的区别是,前者是创建了变量,但是忘记了赋值。后者是,主动赋值一个为空的值

2、引用数据类型

  • object 对象
  • function 函数检测数据类型
  • array 数组

2、检测数据类型

当我们的代码量达到了一定的量,或者代码由外部引入时,我们无法知道变量赋值的类型,或者需要花费我们较多的时间去查找,那么此时我们可以用 typeof 关键字来检测数据类型

<script>
        let age = 20 // 数值 number
        let name = 'large' // 字符串 string
        let no = true // boolean
        let user //  未赋值 undefined
        let num = null //  对象 object

        console.log(typeof age);
        console.log(typeof name);
        console.log(typeof no);
        console.log(typeof user);
        console.log(typeof num);
    </script>

类型转换

1、为什么要类型转换

通俗来说,就是把一种数据类型的变量转换成我们需要的数据类型。例如,把字符串型转换成数字型,以方便计算

2、隐式转换

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

    <script>
      // 工作中 比较常用的隐式转换写法
      let num2 = '2';

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

      // 最简洁的写法
      let num4 = +num2;
    </script>

3、显式转换

 <script>
     let num1 = '2134'
        // 显示转换 转成 数字类型写法
        let num2 = Number(num1)  //较为正式的写法  常用

        console.log(num2); //此时显示的就是数字 2134 本身

        // 如果num1里面不是数字,而去转换成数字类型,那么就会显示成NaN(not a number)

        // 对于其他的类型转换成数字,无非就两种情况
        //1、成功   数字本身
        //2、失败   NAN(not a number)
     
     // 显示转换的第二种写法
     
     let str = num1.toString() ; // 显示转换  常用 

      console.log( typeof  str );
     
     </script>

document.write补充

<script>
      // 可以把内容(标签) 输出到 body标签中

      // document.write("呵呵 我又来啦 😶");
      // document.write(`<h1>大标题! <h1/>`);

      // let str =`<button>大大的按钮</button>`;

      // let str =`<input type="text" > <button>大大的按钮</button>`;

      // 反引号 还可以换行来写代码
      // 如果换行了 那么就只能使用 反引号
      // 如果不换行 用哪种引号都可以
      let str = `
        <div>
      <p>
        <button>按钮又来啦</button>
      </p>
    </div>
        `;
      document.write('<h1>11111</h1>');

      /* 
      1 document.write 可以把一个 标签形式的字符串 重新插入到body标签里
      
      2 写标签字符串的时候  
        如果要换行  只能使用 反引号
        没有换行的话 用哪种引号都可以

        只要是写标签字符串 都可以使用反引号,也叫模版字符串

      3 尽可能不要直接在 字符串里面 一个一个字母写标签
        这样的效率低 还容易出错  
        我们可以先在 body标签中 使用 快捷键生成 标签 然后再复制回去
      
       */
    </script>

案例练习 - 订单付款确认页面

 <script>
        let productName = prompt(`请输入商品名称`),productPrice = prompt(`请输入商品价格`),
        productNum = prompt(`请输入商品数量`), producTotal, adress = prompt(`请输入收获地址`)
        
        document.write(`
        <table>
        <tr>
            <th>商品名称</th>
            <th>商品价格</th>
            <th>商品数量</th>
            <th>总价</th>
            <th>收获地址</th>
        </tr>

        <tr>
            <td> ${productName}</td>
            <td> ${productPrice}元</td>
            <td> ${productNum}</td>
            <td> ${+productPrice * +productNum}元</td>
            <td> ${adress}</td>
        </tr>
    </table>
        `)
    </script>