JavaScript 变量、数据类型、运算符

2.变量

1)什么是变量?

在计算机中,可以通过一些符号表示一些数据,这个符号就是变量(所谓变量,就是可以初始化后可以再次改变的量)。

2)如何定义一个变量?

变量需要定义才能使用。

var  变量名 = 值;

Js是弱类型语言,定义变量时无须指定类型。

控制台调试工具: F12  -> console(控制台)

代码中: console.log(“我们”);

变量可以重复赋值,但不能重复定义。

3)变量名的命名规范

A, 第一个字符不能是数字

B, 变量名可以由字母,数字,下划线和$组成

C,不能使用关键字和保留字。

 

关键字:

JavaScript描述了一组具有特定用途的关键字,一般用于控制语句的开始或结束, 或者用于执行特定的操作等。关键字也是语言保留的,不能用作标识符

 

 

 

 

 

保留字:JavaScript还描述了另一组不能用作标识符的保留字。尽管保留字在 JavaScript 中还没有特定的用途,但它们很有可能在将来被用作关键字

 

4)区分大小写

 

3.变量的数据类型

(1)虽然js是弱类型语言(定义时无须指定类型),但事实上变量有自己的类型(变量类型取决于值)。

(2)JavaScript数据类型分为两大类:

 简单(基本)数据类型:undefined、null、boolean、number 和 string

引用类型:常见引用类型 Date、Array、Function、RegExp、Object

注意:Date、Array、Function、RegExp都归属与Object类型

(3)变量拥有动态的数据类型

  var a=10;//number

  a=‘hello’;//string

(4)变量数据类型检测

  typeof 变量名;

 

注意:

1.我们没有必要显式的给一个变量赋值为 undefined,因为没有赋值的变量会隐式的(自动的)赋值为 undefined

2.undefined 是派生自 null

3. typeof 操作符检测 null 会返回 object。

4.NaN,即非数值(Not a Number)是一个特殊的值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)

5.NaN的数据类型为 number

 

数据类型详解

(1)undefined类型

undefined 类型只有一个值,即特殊的 undefined。在使用 var 声明变量,但没有对其初 始化时,这个变量的值就是 undefined

     例如:var a; 

  console.log(a);//undefined

(2)null类型

null 类型是一个只有一个值的数据类型,即特殊的值 null。它表示一个空对象引用(指 针),而 typeof 操作符检测 null 会返回 object。

(3)boolean类型

 boolean 类型有两个值(字面量):true 和 false。

(4)number类型

number 类型包含两种数值:整型和浮点型。 

   例如:

  var a=10;//整型10

  var b=10.1;//浮点型10

注意:JavaScript支持科学计数法:

例如: 

  var a=13000;var b=0.0035;

  可以转换为:

  var a=1.3e4;

  var b=3.5-e3;

 

(5)string类型

string 类型用于表示由于零或多个字符组成的字符序列。字符串可以由双引号(")或单引号(')表示。

例如:

  var a=‘hello’;

               var b=‘’;//空字符串

  var c=“hello world”;

注意:字符串中可以包含任何内容,另外 字符串不管包含任何内容均为原样输出

 

 

数据类型转换

JavaScript 变量可以转换为新变量或其他数据类型

1.使用JavaScript函数

     (1)其他类型转换为字符串类型

  使用toString()方法即可

  拼接””(空字符串)

      (2)将字符串转换为数字:

  parseFloat();//解析一个字符串,返回浮点数

  parseInt();//解析一个字符串,返回整数

2.通过JavaScript自身自动转换

当 JavaScript 尝试操作一个 "错误" 的数据类型时,会自动转换为 "正确" 的数据类型。

例如:

  3 + null    // 返回 3         null 转换为 0

  “3" + null  // 返回“3null"   null 转换为 "null"

  “3" + 1     // 返回 “31"      1 转换为 "1"  

  “3" - 1     // 返回 2        “3" 转换为 3

注意:

(1)在特殊情况下,true与1,false与0之间 可以互相转换

(2)在特殊情况下(如判断语句中),null、undefined、’’、0均可以认为是 false,其他则为true

(3)parseInt(‘5abc’)的值为5,parseInt(‘abc5’)的值为NaN

 

4.变量值的传递

变量的赋值为值的传递

例如:

  var a=10;

  var b=a;//  b=10  ,a=10

  b=20;

  console.log(a,b);//a=10,b=20

附加:多变量声明

  var a,b,c;

  var a=10,b=20,c=30;

 

5.变量提升现象

JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。

JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。

例如:

      a=20;//对变量a进行赋值

      document.write(‘hello’);

      console.log(a);//a的值为20

      var a;//声明变量a

注意:变量的初始化不会提升

   例如:

  console.log(a);// undefined

  var a=10;

赋值语句依然遵循顺序结构

 

6.运算符

算术运算符

+, -, /, %, ()

++, --  (自增,自减)

1)关系运算符

得到的结果是boolean值。 只有true 或false

>, <, >=, <=, ==, !=, ===, !==

2)逻辑运算符

得到的结果是boolean值。

&&, ||, !  (与或非)

&&    都真才真

||      都假才假

!     取反 (非真就是假)

3)赋值运算符

=

 

注释:

(1)只能操作一个值的运算符叫做一元运算符。例如:++和--

(2)前置和后置的区:在没有赋值操作,前置和后置是一样的。但在赋值操作时,如果递增或递减运算符前置 ,那么前置的运算符会先累加或累减再赋值,如果是后置运算符则先赋值再累加或累减。

(3)关系运算符规则:

  1.两个操作数都是数值,则数值比较;

  2.两个操作数都是字符串,则比较两个字符串对应的字符编码值;

  3.两个操作数有一个是数值,则将另一个转换为数值,再进行数值  比较;

 

 

在相等和不等的比较上,如果操作数是非数值,则遵循一下规则:

(1)一个操作数是布尔值,则比较之前将其转换为数值,false 转成 0,true 转成 1;

(2)一个操作数是字符串,则比较之前将其转成为数值再比较;

(3)一个操作数是对象,则先调用 valueOf()或 toString()方法后再和返回值比较;

(4)不需要任何转换的情况下,null 和 undefined 是相等的;

(5)一个操作数是 NaN,则==返回 false,!=返回 true;并且 NaN 和自身不等;

(6)两个操作数都是对象,则比较他们是否是同一个对象,如果都指向同一个对象,则返回 true,否则返回 false。

(7)在全等和全不等的判断上,比如值和类型都相等,才返回 true,否则返回 false。

 

 

 

 

逻辑运算符规则扩展:

如果两边的操作数有一个操作数不是布尔值的情况下,与运算就不一定返回布尔值,此时,遵循已下规则:

1.第一个操作数是对象,则返回第二个操作数;

2.第二个操作数是对象,则第一个操作数返回 true,才返回第二个操作数,否则返回 false;

3.有一个操作数是 null,则返回 null;

4.有一个操作数是 undefined,则返回 undefined。

 

逻辑运算符扩展:

如果两边的操作数有一个操作数不是布尔值的情况下,与运算就不一定返回布尔值,此时,遵循已下规则:

1.第一个操作数是对象,则返回第二个操作数;

2.第二个操作数是对象,则第一个操作数返回 true,才返回第二个操作数,否则返回 false;

3.有一个操作数是 null,则返回 null;

4.有一个操作数是 undefined,则返回 undefined。

5.对于逻辑或(||)

    若运算符前的表达式为真,则第二个表达式不再运算,

    若运算符前的表达式为假,则结果为第二个表达式

  例如:

  var a=true||3;//true

  var b=false||4//4

对于逻辑与(&&)

  若运算符前表达式为真,则结果为第二个;若运算符前一个表达式为假,则结果为假,例如:

  var a=true&&5;//5

  var b=false&&5;//false

 

其它运算符:

(1)逗号运算符:逗号运算符可以在一条语句中执行多个操作。

    var box = 100, age = 20, height = 178; //多个变量声明

    var box = [1,2,3,4,5]; //[1,2,3,4,5],数组的字面量声明

(2)三元条件运算符:三元条件运算符其实就是后面将要学到的 if 语句的简写形式。

       var box = 5 > 4 ? '对' : '错'; //对,5>4 返回 true 则把'对'赋值给 box,反之。

 

运算符优先级:

在一般的运算中,我们不必考虑到运算符的优先级,因为我们可以通过圆括号来解决这种问题

var box = 5 - 4 * 8; //-27

var box = (5 - 4) * 8; //8

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值