JavaScript基础

JavaScript是一种基于对象和事件驱动并具有安全性能的解释型脚本语言,不但可用于编写客户端的脚本程序,由Web浏览器解释执行,还可以编写在服务器端执行的脚本程序,在服务器端处理用户提交的用户提交的信息并动态地向客户端浏览器返回处理结果.JavaScript脚本语言与其他语言一样,有其自身的语法、数据类型、运算符、表达示等

以上是本章学习JavaScript基础的大背景,接下来是笔记内容

  1. 数据类型
  2. 变量和常量
  3. 运算符
  4. 表达式
  5. 数据类型的转换规则

javaScript的数据类型

  • 数字型
  • 字符串型
  • 布尔型
  • 特殊数字类型

数字型:JavaScript所有数字都是由浮点型表示的.JavaScript采用IEEE754标准定义的64位浮点式表示数字,这意味着它能表示的最大的值是±1.7976931348623157x10308,最小值是±5x10-324

当一个数字出现在JavaScript程序中时,称之为数值直接量

JavaScript支持的数值直接量有一下几种,当我们在JavaScript程序中看到数字就要思考它是数值直接量的哪种了,共三种

  1. 整形数据
  2. 十六进制和八进制
  3. 浮点型数据

整型数据:十进制的整数是一个数字序列

0
90
-4
7676

十六进制和八进制:

0xff
0xCAFE911

有些JavaScript不支持八进制,最好使用16进制的数据

浮点型数据:浮点数据型可以具有小数点,采用的是传统的科学技术法的语法。

1.4
.5555555
3.13e12  
1.123E-12

你知道吗?

在任何数值直接量前加负号(-)可以构成它的负数。但是负号是一元求反运算符,它不是数值直接量语法的一部分。

虽然实数有无穷多个,但是JavaScript得浮点格式能够精确表示出来的却是有限的,这意味着在JavaScript中使用实数时,表示数字通常是真实数值的近似值。不过即使是近似值也足够用了,这并不是一个实际的问题。

字符串型:字符串(String)是Unicode字符、数字、标点负号等组成的序列,字符串一般用来表示文本数据类型。程序中的字符串型数据是包含在单引号或双引号中的,单引号定界的字符串中可以含有双引号,由双引号定界的字符串也可以含有单引号

(1)单引号括起来的一个或者多个字符

'我'
'我最近一直很忙,忙于学习各种书籍'

(2)双引号括起来的一个或者多个字符

'这'
'这个假期的目标很小,想学习JavaScript、spring,完了再去复习Java核心技术'

(3)单引号定界的字符串中可以含有双引号

'name="myname"'

(4)双引号定界的字符串可以含有单引号

"我2019级在江苏无锡上大专,希望遇到'伯乐'"

例:下面分别定义了4个字符串

<script type="text/javascript">
        var string1 = "我喜欢'javascript'";
        var string2 = '这2020年暑假在学javascript';
        var string3 = "因为有\"Java\"的基础";
        var string4 = '天下第一是\'JavaScript\'';
        document.write(string1+"<br>");
        document.write(string2+"<br>");
        document.write(string3+"<br>");
        document.write(string4+"<br>");
</script>

程序运行结果:

我喜欢'javascript'
这2020年暑假在学javascript
因为有"Java"的基础
天下第一是'JavaScript'

布尔型:布尔数据类型的值只有两个,这两个合法的值分别由直接量true和false表示,用来说明某个事物是真还是假

布尔值通常在JavaScript程序中用来比较所得的结果

n==1

这行代码测试量变量n的值是否和数值1相等.  如果相等就是布尔值true,否则结果就是false

布尔值通常用于JavaScript的控制结构. 例如,JavaScript的if...else语句就是在布尔值为true时执行的一个动作,而在布尔值为false时执行另一个动作. 通常将一个创建的布尔值与使用这个比较的语句结合在一起

如:

if(n==1)
    m=n+1;
else
    n=n+1;

这段代码检测了n是否等于1. 如果相等,就给m增加1,否则给n加1

你知道嘛?

有时候可以把两个可能的布尔值看作是on(true)和off(false),或者看作是yes(true)和no(false),这样比将它们看作是true和false更为直观. 有时候把它们看作是1(true)和0(false)会更加有用(实际上,JavaScript确实是这样做的,在必要时会将true转成1,将false转成0)

特殊数据类型:

  • 转义字符
  • 未定义的
  • 空值(null)

转义字符:以反斜杠开头的不可显示的特殊字符通常称为控制字符,也被称为转义字符.通过转义字符可以在字符串中添加不可显示的特殊字符,或者防止引号匹配混乱的问题. JavaScript常用的转义字符如下表:

Javascript常用的转义字符
转义字符 说明 转义字符 说明
\b 退格 \v 跳格
\n 回车换行 \r 换行
\t Tab字符 \\ 反斜杠
\f 换页 \OOO 八进制整数,范围为000~777
\' 单引号 \xHH 十六进制整数,范围为00~FF
\" 双引号 \uhhh 十六进制编码的Unicode字符

在“documnet.write();”语句中使用转义字符时,只有将其放在格式化文本块中才会起作用,所以脚本必须在<pre>和</pre>标记内

例如下面应用转义字符使字符串换行,程序代码如下:

<script type="text/javascript">
    document.writeln("<pre>");
    document.writeln("轻松学习\nJavaScript语言");
    document.writeln("</pre>");
</script>

运行结果:

轻松学习
JavaScript语言

为定义值:

未定义类型的变量是undefined,表示变量还没有赋值(如“var a;”),或者赋予一个不存在的属性值(如“var a =String.notProperty;”).

此外,JavaScript有一种特殊类型的数字常量NaN,即“非数字”. 当在程序中由于某种原因发生计算错误后,将产生一个没有意义的数字,此时JavaScript返回的数字值就是NaN

空值(null):

JavaScript中关键字null是一个特殊的值,表示为空值,用于定义空的或者不存在的引用. 如果试图引用一个没有定义的变量,则返回一个null值. 这里必须要注意的是,null不等于空的字符串("")或0

由此可见,null与undefined的区别是,null表示一个变量被赋予了一个空值,而undefined则表示该变量尚未被赋值.

 

常量和变量:每一种计算机语言都有自己的数据结构,JavaScript脚本语言的数据结构包括常量和变量等.

JavaScript常量和变量:

  • 常量
  • 变量

常量:当程序运行时,值不能改变的改变的量称为常量. 

当程序运行时,值不能改变的量称为常量. 常量主要为程序提供固定和准确的值(包括数值和字符串),如数字、逻辑值真(true)、逻辑值假(false)等都是常量.通常使用const来声明常量

语法格式如下:

const
            常量名:数据类型=值;

变量在程序中定义后便会在计算机中一定的位置存储下来,在该程序没有结束之前,他是不发生变化的. 如果在程序中过多的使用变量,会降低程序的可读性和可维护性,当一个变量在程序内被多次引用,可以考虑在程序开始处将它设置为变量,然后引用,当此值需要修改时,则只更改其变量的值即可,既可以减少出错机会,又可以提高工作效率

变量:

变量是指程序中一个已经命名的存储单元,其主要作用就是为数据句操作提供存放信息的容器. 

  • 变量的命名
  • 变量的声明与赋值
  • 变量的作用域
  • 变量的生命周期

变量的命名:

JavaScript变量的命名规则如下:

  1. 必须以字母或下划线开头,中间也可以是数字、字母或下划线
  2. 变量名不能包含空格、加号、减号等符号
  3. 不能使用JavaScript中的关键字. 
  4. JavaScript的变量名是严格区分大小写的.例如,UserName与username代表两个不同变量

虽然JavaScript的变量可以任意命名,但是在进行编程时,最好还是使用便于记忆且有意义的变量名称,以增加程序的可读性

变量的声明与赋值:

在JavaScript中,使用变量前需要先对其进行声明,所有的JavaScript变量都由关键字var声明,语法格式如下:

var variable;

在声明变量的同时也可以对变量进行赋值,例如:

var variable=11;

变量的作用域:

<script type="text/javascript">
        var a;             //该变量在函数外声明,作用用于整个脚本代码
        function send(){
            a = "javascript";
            var b = "语言基础";  //该变量在函数内声明,只作用域该函数体
            alert(a+b);
        }
</script>

 

你知道吗?

JavaScript用“;”作为语句结束的标记,如果不加也可以正确地执行.用“//”作为单位单行注释标记;用“/*”和“*/”作为多行注释标记;用“{”和“}”包装成语句块. “//”后面的文字注释部分,在代码执行过程中方不起任何作用

变量的生存期:变量的生存期是指在计算机中存在的有效时间. 从编程的角度来说,可以简单地理解为该变量所赋的值在程序中的有效范围.JavaScript中变量的生存期有两种:全局变量和局部变量

全局变量在主程序中定义,其有效范围从其定义开始,一直到本程序结束为止. 局部变量在程序的函数中定义,其有效范围只有在该函数之中,当函数结束后,局部变量的生存期也就结束了

 

运算符

JavaScript的运算符操作数可以分为单目运算符、双目运算符和多目运算符3种;运算符类型可以分为算数运算符、比较运算符、赋值运算符、字符串运算符、逻辑运算符和条件运算符等等

  • 算数运算符
  • 比较运算符
  • 赋值运算符
  • 字符串运算符
  • 逻辑运算符
  • 条件运算符
  • 其他运算符
  • 运算符优先级

算数运算符:用于在程序中进行加、减、乘、除等运算. 

JavaScript中的算是运算符
运算符 描述 示例
+ 加运算符 4+6       //返回值为10
- 减运算符 7-2        //返回值为5
* 乘运算符 7*3       //返回值为21
/ 除运算符 12/3      //返回值为4
% 求模运算符 7%4      //返回值为3
++ 自增运算符. 该运算符有两种情况:i++(在使用i之后,使i的值加1);++1(使用i之前,先使i的值加1)

i=1;j=i++  //j的值为1,i的值为2

i=1;j=++i //j的值为2,i的值为2

-- 自减运算符. 该运算符有两种情况:i--(在使用i之后,使i的值减1);--1(在使用i之前,先使i的值减1)

i=6;j=i--  //j的值为6,i的值为5

i=6;j=--i  //j的值为5,i的值为5

 

通过JavaScript在页面中的定义的变量,再通过算数运算符计算变量的运行结果:

事件的看法看见啊收到回复开始疯

比较运算符:

比较运算符的基本操作过程是:首先对操作数进行比较,该操作数可以是数字也可以是字符串,然后返回一个布尔值true和false

JavaScript中的比较运算符
运算符 描述 示例
< 小于 1<6   //返回值为true
> 大于 7>10 //返回值为false
<= 小于等于 10<=10   //返回值为true
>= 大于等于 3>=6  // 返回值为false
== 等于.只根据表面值进行判断,不涉及数据类型 "17"==17 //返回值为true
=== 绝对等于. 根据表面值和数据类型同时进行判断 "17"==17 //返回值为false
!= 不等于.只根据表面进行判断,不涉及数据类型 "17"!=17 //返回值为false
!== 不绝对等于.根据表面值和数据类型同时进行判断 "17"!=17 //返回值为true

赋值运算符:

JavaScript中的赋值运算可以分为简单赋值运算和符合赋值运算.  简单赋值运算是将运算符(=)右边表达式的值保存到左边的变量中;而符合赋值运算混合了其他的操作(算数运算符、位操作等)和赋值操作. 例如

sum+=i      //等同于sum=sum+1;
JavaScript中的赋值运算符
运算符 描述

示例

= 将右边的表达式的值赋给左边的变量

userName="mr"

+= 将运算符左边的变量加上右边的表达式的值赋给左边的变量  
-=    
*=    
/=    
%=    
&=    
|=    
^=    

注:上面内容过于简单,笔记都不想记得很清楚了,学习过java的都应该明白

  字符串运算符:

JavaScript中的字符串运算符
运算符 描述 示例
+ 连接两个字符串 "mr"+"book"
- 连接两个字符串并将结果赋给第一个字符串

var name = "mr"

name+="book"

逻辑运算符:

逻辑运算符
运算符 描述 示例
&& 逻辑与 a&&b   //当a和b都为真时,结果为真,否则为假
|| 逻辑或 a||b  //当a为真或者b为真时,结果为真,否则为假
! 逻辑非

!a     //当a为假时,结果为真,否则为假

条件运算符:

条件运算符是,JavaScript支持的一种特殊的三目运算符,其语法格式如下:

操作数?结果1:结果2

如果“操作数”的值为true,则整个表达式的结果为“结果1”,否则为“结果2”

<script type="text/javascript">
        var a = 10;
        var b = 10;
        alert(a==b)?正确:错误;
</script>

 

其他运算符:

  • 位操作运算符
  • typeof运算符
  • new运算符

位操作运算符:位操作符分为两种,一种是普通位运算符,另一种是位移运算符. 在进行运算前,都先将操作数转换为32位的二进制整数,然后进行相关运算,最后的输出结果将以十进制表示.位操作运算符对数值的位进行操作,向左或向右位移等.

位操作运算符
位操作运算符 描述 位操作运算符 描述
& 与元算符 << 左移
| 或运算符 >> 带符号右移
^ 异或运算符 >>> 填0右移
~ 非运算符    

typeof运算符:

typeof运算符用于返回它的操作数的当前所容纳的数据类型.这对于判断一个变量是否已被定义特别有用

下面应用typeof运算符返回当前所容纳的数据类型,代码如下:

<script type="text/javascript">
        var a = 3;
        var b = "name";
        var c = null;
        document.write("a的类型为"+(typeof a)+",b的类型为"+        
                (typeof b)+",c的类型为"+(typeof c));
</script>

运行结果:

a的类型为number,b的类型为string,c的类型为object

你知道吗?

typeof运算符把类型信息当作字符串返回. typeof返回值有6种可能:number、string、boolean、object、function和undefined


new运算符:

通过new运算符来创建一个新对象

语法:

new constructor [(arguments)]

参数说明:

constructor:必选项.对象的构造函数.如果构造函数没有参数,则可以省略圆括号

arguments:可选项. 任意传递给新对象构造函数的参数

例如:应用new运算符来创建新对象,代码如下:

Object = new Object;
Array2 = new Array();
Date3 = new Date("August 4 2020");

运算符优先级:先乘除后加减,有括号先算括号.(目前就简单的记住这些就足够了)

表达式:

表达式是一个语句集合,像一个组一样,计算结果是一个单一值,然后该结果被JavaScript归入下列数据类型之一:boolaen、number、string、function或者object

一个表达式可以简单得如一个数字或者变量,或者可以包含许多连接在一起的变量关键字以及运算符.例如,表达式x=7将值7赋给变量x,整个表达式结果为7,因此在一行中使用次类表达式是合法的. 一旦将7赋值更为x 的工作完成,那么也将是一个合法的表达式.除了赋值运算符,还有许多可以用来形成一个表达式的其他运算符,例如算数运算符、字符串运算符、逻辑运算符等

 

数据类型的转换规则:

JavaScipt是一种无类型语言,也就是说,在声明变量时,无需指定数据类型,这使得JavaScript更具有灵活性和简单性

在代码执行过程中,javaScript会根据需要进行自动类型转换,但是在转换时也要遵循一定的规则

下面介绍几种数据类型之间的转换规则:

转换为数值型数据
类型 转换后的结果
undefeated NaN
null 0
逻辑型 若其值为true,则结果为1;若其值为false,则结果为0
字符串型 若内容为数字,则结果为相应的数字,否则为NaN
其他对象 NaN

 

转换为逻辑型数据
类型 转换后的结果
undefined false
null false
逻辑型 若其值为0或NaN,则结果为false,否则为true
字符串型 若其长度为0,则结果为false,否则为true
其他对象 true

 

转换为字符串型数据
类型 转换后的结果
undefined "undefined"
nulll "NaN"
数值型 NaN、0或者与数值相应的字符串
逻辑型 若其值为true,则结果为"true";若其值为false,则结果为"false"
其他对象 若存在,则其结果为 toString()方法值,否则其结果为"undefined"

 

每一个基本数据类型都存在一个相应的对象,这些对象提供了一些很有用的方法来处理基本数据

在需要时,JavaScript会自动将基本数据类型转换为其相应的对象

      String对象提供来一个toLowerCase()方法来把一个字符串转换成小写格式,该方法也可以通过String对象来调用.

例:将基本数据提升为对象的应用:

<script type="text/javascript">
        var myString = new String('aBcDef');
        var lower = myString.toLowerCase();
        document.write('转换后的结果为'+lower); 
</script>

运行结果:

转换后的结果为abcdef

 

-------------------------------------------------------

今天就到这里吧,前两天没更,家里有点事情,下一篇随笔是《JavaScript控制流程》,有兴趣的可以去我的博客找一下.希望我能在不久的将来更新完我的JavaScript学习博客.

 

posted @ 2020-08-04 23:55  牧民战天兔  阅读(198)  评论(0)    收藏  举报