JavaScript变量和数据类型

认识JavaScript变量

变量的定义,规范等

一个变量,就是一个用于存放数值的容器;
这个数值可能是一个用于计算的数字,或者是一个句子中的字符串,或者其他任意的数据;
变量的独特之处在于它存放的数值是可以改变的

变量的命名规则

变量的声明:在JavaScript中声明一个变量使用var关键字(variable单词的缩写)(后续学习ES6还有let、const声明方式)
变量的赋值:使用=给变量进行赋值;
  // 变量声明 var关键字
    // var curentTime = "16:00";
    // 其他写法一: 先声明后赋值
      var curentTime;
      curentTime = "16:02";
      curentTime ="17:00";
    // 其他写法二:同时声明多个变量
      var name,age,height;
      name= "webking";
      age="21";
      height="1.83cm";
      // 方法二
      var name="hdc",age=21,height=1.83;

命名规则

  1.变量的第一个首字母必须以英文字母,_,$,开头
  2.其他字符可以是字母,_,$,或者数字
  3.不能用关键字和保留字命名:
    https://developer.mozilla.org/zh-CN/docs/web/javascript/reference/lexical_grammar
  4.严格区分大小写
  建议遵守:
    1.多个单词使用驼峰表示(小驼峰)
     大驼峰:所有单词的首字母大写
     小驼峰:一个单子首字母小写 剩下的所有单词首字母大写
      var curentTime
    2.推荐等号两边添加空格
      var nameHdc = hdc;
    3.一条语句结束后添加分号;
    4.尽量见名知意

变量使用注意

    // 注意事项一:如果一个变量未声明直接使用,会报错:04_JavaScript变量注意事项.html:12 Uncaught ReferenceError: age is not defined
    // 注意事项二:如果一个变量有声明,但是没有赋值操作会提示:undefined
    var age;
    console.log(age)
    // 注意事项三:在JavaScript中也可以不使用var全局声明一个变量
    // 如果不适用var来声明一个变量,也是可以声明成功的,并且这个变量会被加入到window对象中
    address="天津市";
    console.log(address)

数据类型

    JavaScript中的值都具有特定的类型
    我们可以将值赋值给一个变量,那么这个变量就具备了特定的类型;
    一个变量可以在前一刻是个字符串,下一刻就存储一个数字
    允许这种操作的编程语言,例如JavaScript,被称为“动态类型”(dynamically typed)的编程语言

typeof(操作符)

  因为ECMAScript 的类型系统是松散的,所以需要一种手段来确定任意变量的数据类型,typeof 操作符就是为此而生的。
    <!--获取变量的数据类型-->
    var info = "why";
    info = 18;
    info = {};
    console,console.log( typeof info);
    控制台输入:object

其他类型

     对一个值使用typeof操作符会返回下列字符串之一:
       "undefined"表示值未定义;
       "boolean"表示值为布尔值;
       "string"表示值为字符串;
       "number"表示值为数值;
       "object"表示值为对象(而不是函数)或 null; 
          !设置为null时返回的数据类型是object
       "function"表示值为函数;
       “symbol”表示值为符号

typeof()的用法:

      你可能还会遇到另一种语法:typeof(x),它与 typeof x 相同;
      typeof是一个操作符,并非是一个函数,()只是将后续的内容当做一个整体而已;

isNaN

      用于判断是否不是一个数字。不是数字返回true,是数字返回false
      console.log(isNaN(result))
      返回结果为true和false

()的作用

  第一:表示的是调用函数
  第二:将某一个表达式当成一个整体

常见的数据类型

JavaScript 中有八种基本的数据类型(前七种为基本数据类型,也称为原始类型,而object 为复杂数据类型,也称为引用类型)。

        number 用于任何类型的数字:整数或浮点数。
        string 用于字符串:一个字符串可以包含0 个或多个字符,所以没有单独的单字符类型。
        boolean 用于 true 和 false。
        undefined 用于未初始化的值 ——只有一个undefined 值的独立类型。
        object 用于更复杂的数据结构。
        null 用于未知的值——只有一个null 值的独立类型。
        ◼ 后续学习的类型:
        symbol 用于唯一的标识符。
        bigint 用于任意长度的整数

Number类型

    <script>
            // number类型的基本使用
            var age =18;
            var height=1.88;
            console.log(typeof age)
            // 特殊数值
            // 正无穷
            var num1 = Infinity;
            var num3 = 1/0;
            // 负无穷
            var num2 = -Infinity;
            console.log(num1,num3,num2);
            // NaN:not a  number(得到的结果不是数字)
            var result = 3 * "hahahaha"
            console.log(result)
            // 判断是不是NaN
            console.log(isNaN(result))
            // 3.进制的表示
            var a = 100;//默认是10进制
            var b = 0x100 //十六进制
            console.log(b);//256
            var c = 0o100;//八进制
            console.log(c);
            var d = 0b100;//二进制
            console.log(d);
            // 5.数字可以表示的范围
            var max = Number.MAX_VALUE;
            console.log(max);
            var min = Number.MIN_VALUE;
            console.log(min);
    </script>

String类型

          <script>
                // string类型基本使用
                var name = "webking";
                var address = "天津市";
                var intro = "认真是一种可怕的力量";
                // 2.字符串别的引号的使用
                // 单引号
                var message1 = '哈哈哈哈哈哈';
                // 双引号
                var message2 = "喜喜喜喜喜喜";
                // 反引号(es6里面新增的语法)
                  // 可以在字符串里拼接变量或者表达式---->${变量/表达式}
                var message3 = `啦啦啦啦啦啦,${name},${2+3}`;
          </script>

转义字符

    转义字符        表示符号
      \'              单引号
      \"              双引号
      \\              反斜杠
      \n              换行符
      \r              回车符
      \t              制表符
      \b              退格符

字符串本身有的方法和属性

var message = "Hello World";
// 获取字符串长度
  console.log(message.length)
// 字符串拼接
  var nickname = "webking"
  var info = "my name is "
  // 方法一
  var infoStr = `my name is ${nickname}`;(推荐)
  // 方法二
  var infoStr2 = info + nickname;
  console.log(infoStr,infoStr2);

Boolean 布尔类型

  Boolean 类型仅包含两个值:true 和false。
  布尔(英语:Boolean)是计算机科学中的逻辑数据类型,以发明布尔代数的数学家乔治·布尔为名。
  逻辑运算符中我们还会详细学习和使用Boolean类型;

Undefined类型

   Undefined 类型只有一个值,就是特殊值undefined
这里有两个注意事项:
    注意一:最好在变量定义的时候进行初始化,而不只是声明一个变量;
    注意二:不要显示的将一个变量赋值为undefined
    ✓ 如果变量刚开始什么都没有,我们可以初始化为0、空字符串("")、null等值

Object 类型

  Object 类型是一个特殊的类型,我们通常把它称为引用类型或者复杂类型;
  其他的数据类型我们通常称之为“原始类型”,因为它们的值只包函一个单独的内容(字符串、数字或者其他);
  Object往往可以表示一组数据,是其他数据的一个集合;
  在JavaScript中我们可以使用 花括号{} 的方式来表示一个对象  
  例如:
    var info={
        name:"webking",
        age:21,
        height:1.88
      } 

初始化

      // Object类型
      var myInfo = {
        name:"hdc",
        age: 21 ,
        sex: "男",
        height: "1.88m"
      };
      console.log(myInfo);
    // 2.拿到对象类型中的某一个属性
      console.log( myInfo.name);
    // 3.Null类型
    // 3.1 其他类型的初始值
      var age = 0;
      var message = "";//空字符串
      var isAdmin = false;
    // 3.2如果对象类型初始化值为{}的时候在进行if条件判断的时候会默认转成boolean类型的true
    // // 0,"",fales等原始数据类型在if语句里默认的值都默认转成boolean类型的fales;
      var book = {}; 
      if (book){
        // alert("1")
        document.write("123131");
      }
      // 当对一个对象类型进行初始化的时候不建议初始化值为{},建议初始化为null
      // Null类型存在的意义就是对对象进行初始化的
      var family = null;
      if (family){
        // alert("1")
        document.write("123131");
      }

null和undefined的区别

undefined通常只有在一个变量声明但是未初始化时,它的默认值是undefined才会用到;
并且我们不推荐直接给一个变量赋值为undefined,所以很少主动来使用;
null值非常常用,当一个变量准备保存一个对象,但是这个对象不确定时,我们可以先赋值为null;

数据类型的转换

比如把一个String类型的数字和另外一个Number类型的数字进行运算;
比如把一个String类型的文本和另外一个Number类型的数字进行相加;
比如把一个String类型或者Number类型的内容,当做一个Boolean类型来进行判断
大多数情况下,运算符和函数会自动将赋予它们的值转换为正确的类型,这是一种隐式转换;
我们也可以,通过显示的方式来对数据类型进行转换

字符串String的转换

其他类型经常需要转换成字符串类型,比如和字符串拼接在一起或者使用字符串中的方法
转换方法一:隐式转换
  一个字符串和其他类型进行+操作:
    如果+运算符左右两边有一个是字符串,那么另一个会自动转换成字符串类型进行拼接;
  某些函数的执行也会自动将参数转化为字符串类型;
    例如:console.log()函数

转换方法:

   // 转换方式一:隐式转换
    // 通过与空字符串:"" 相加利用隐式转换不会对内容进行影响 并且会转为String类型
    var numStr = num1 + "";
    var ageSrt = age + "";
    var isAdminStr = isAdmin + "";
    console.log(typeof numStr,typeof ageSrt,typeof isAdminStr)//string string string
  // 转换方式二:显示转换
    var num1Str2 = String(num1)
    console.log(typeof num1Str2) //string

数字类型Number的转换

  其他类型也可能会转成数字类型。

转换方法:

  // 方法一:隐式转换(用的很少)
    var num1 ="8";
    var num2 ="4";
    var result = num1 + num2;//84 加法时会转成字符串
    console.log(result);
    var result2 = num1 / num2;//2 当进行非加法运算时 会先将数据类型转换成数字类型 在进行计算
    console.log(result2);
  // 方法二:显式转换
    var result3 = Number(num1);
   其他类型转换成数字规则: 
    值               转换后的值
  undefined             NaN
  null                  0
  true 和 false       1 and 0
  string             去掉首尾空格后的纯数字字符串中含有的数字。如果剩余字符串为空,则转换结果为0。否则,将会从剩余字符串中“读取”数字。当类型转换出现error 时返回NaN。

布尔类型Boolean转换

它发生在逻辑运算中,但是也可以通过调用Boolean(value) 显式地进行转换

转换规则如下:

 直观上为“空”的值(如0、空字符串、null、undefined 和NaN)将变为false。
 其他值变成true
  !注意:"0"这个转换成boolean类型时为true;
posted @ 2024-10-20 01:56  韩德才  阅读(2)  评论(0编辑  收藏  举报