JavaScript学习(一)

一、简介

1、起源

JavaScript 诞生于1995年,它的出现主要是用于处理网页中的前端验证,所胃的前端验证,就是指检查用户输入的内容是否符合定的规则。
比如:用户名的长度,密码的长度,邮箱的格式

2、简史

·JavaScript 是由网系公司发明,起初命名为 LiveScript
后来由于 SUN 公司的介入更名为了 JavaScript

·1996年微软公司在其最新的E3浏览器中引入了自己对 JavaScript 的实现 JScript

·于是在市面上存在两个版本的 JavaScript ,一个网景公司的 JavaScript 和微软的 JScript

·为了确保不同的浏览器上运行的 JavaScript 标准一致,所以几
个公司共同定制了 JS 的标准名命名为 ECMAScript

3、时间表

4、实现

ECMAScript 是一个标准,而这个标准需要由各个商去实现。
不同的浏览器商对该标准会有不同的实现。
我们已经知道 ECMAScript 是 JavaScript 标准,所以一般情况下这两个词我们认为是一个意思。但是实际上 JavaScript 的含义却要更大一些。

·一个完整的 JavaScript 实现应该由以下三个部分构成:

5、特点

JS的特点:
解释型语言
类似于C语言和Java的语法结构
动态语言
基于原型的面向对象

二、主要内容

1、浅知

控制浏览器弹出一个警告框 alert(“”);
让计算机在页面输入一个内容 document.write(“”); 向body中输入内容
向控制台输出内容 console.log(“”);

 <script type=""></script>  

注:JS代码从上到下一行一行执行

2、JS的位置

①、写在html属性中

注:不方便维护,不建议使用

<body>
    <button onclick="alert('');">内容</button>     
    可以写在按钮的onclick属性中
    <a href="javascript:alert('');">内容</a>       
    可以写在超链接的href属性中
</body>

②、写在script标签中

<script type="text/javascript"></script>  

③、写在外部js文件中,通过script标签引入

<script type="text/javascript" src="script.js"></script>

注:
1、script标签一旦用于件引入外部文件
就不能在编写内部代码了
即使编写浏览器也会忽略
2、若需要可重新创建script标签用于编写内部代码

3、基本语法

1、注释内容不会被执行,但可在源代码中查看

2、JS中严格区分大小写
3、JS中非调语句都已分好(;)结尾
如果不写分号,浏览器会自动添加,会消耗一定的系统资源
有时浏览器可能加错分号
4、JS中会忽略多个空格和换行

4、字面量和变量

1、字面量:不可改变的值(1,2,3,4,等)
2、变量:可以用来保存字面量,且变量的值可以任意改变
变量更加方便使用,所以通常用变量保存字面量,很少直接使用字面量
也可通过变量对字面量进行描述
3、声明变量:在js中使用var关键字来声明一个变量(要为变量赋值)

<script type="text/javascript">
     第一种:   var a=1;
        
     第二种:  var b;
               b=2;
    </script>

5、标识符

1、在JS中所有可以由自主命名都可以称为标识符
例:变量名,函数名
2、规则
①、标识符中可以包含:数字,子母,下划线,$
②、不能以数字开头
③、不能是关键字或保留字
④、一般采用驼峰命名法
(首字母小写,每个单词的开头字母大写,其余字母小写)例:helloWorld


6、数据类型

数据类型指字面量的类型

JS中共有六中数据类型:
String字符串
Number 数值
Boolean 布尔值
Null 空值
Undefined 未定义
Object 对象
其中String Number Boolean Null Undefined 属于基本数据类型
Object 属于引用数据类型

①、String字符串

1、在JS中字符串需要使用单引号或双引号引起来,但不要混着用
2、引号不能嵌套,单引号里不能有单引号,双引号里不能有双头引号
但是单引号里能有双引号,双引号里能有单引号

 var a="hello"
  var a=‘hello’

3、若要单引号里有单引号,双引号里有双头引号
" 表示一个双引号
’ 表示一个单引号
\n 表示换行
\t 表示制表符
\ 表示\

 <script type="text/javascript">
        var str   
        str="我说:\“今天好冷\”"
          
        str='我说:\'今天好冷\''

    </script>
 <script type="text/javascript">
        alert("str");  输出字面量 字符串str
        alert(str);    输出变量str
    </script>

②、Number 数值

在JS中所有的值都是Number类型,包括整型和浮点型

 <script type="text/javascript">
      var a=123
      var a="123"
    </script>

可以使用运算符typeof来检查变量的类型
检查字符串,返回string
检查数值,返回number

<script type="text/javascript">
      var a=123
      var b="123"
      console.log(typeof a);
    </script>

Number.MAX_VALUE 在JS中表示数字的最大值
Number.MIN_VALUE为正数最小值(5e-324)
如果使用Number表示的数字超过最大值
则返回Infinity正无穷(number类型)
NaN是一个特殊数字,表示Not A Number 类型为number

console.log(Number.MAX_VALUE);

在JS中进行浮点数计算结果可能错误可能

③、Boolean 布尔值

布尔值只有两个用来逻辑判断:true表示真,false表示假
使用运算符typeof来检查变量的类型返回boolean

<script type="text/javascript">
      var bool=true;
      console.log(bool);
    </script>

④、Null 空值 Undefined 未定义

Null 类型的值只有一个 就是Null
专门用来表示为空的对象
使用运算符typeof来检查变量的类型返回Object

Undefined 类型的值只有一个就是Undefined
当声明一个变量是但不给变量赋值时它的值就是Undefined
使用运算符typeof来检查变量的类型返回Undefined

7、强制类型转换

将一个数据类型强制转换成其他的数据类型
类型转换主要是指:将其它数据类型转换成String,Number,Boolean

调用xxx的yyy()的方法

 xxx.yyy();      

①、转换为String

方式一:调用被转换数据类型的toString()的方法

该方法不会影响原变量,它会将装换的结果返回
注意:Null和Undefined没有toString()的方法

<script type="text/javascript">
      var a=123;
      a.toString();      
    </script>

方法二:调用String()函数,并将被转换的数据作为参数传递给函数

使用String()函数强制类型转换时,
对Number,Boolean实际上是调用toString()的方法
但是对于Null和Undefined不会调用toString()的方法
它会直接将Null直接装换为Null
会直接将Undefined直接装换为Undefined

 <script type="text/javascript">
      var a=123;
      a=String(a);
    </script>

②、转换为Number

方法一:调用Number()函数

字符串转数字
1、如果是纯数字的字符串,则直接将其转换为数字
2、如果字符串有非数字的内容,则转换为NaN
3、如果字符串是一个空串或全是空格的字符串,则转换为0

布尔值转数字
true转1
false转0

Null转数字为0
Undefined转数字为0

方式二:专门用来对付字符串
parseInt()把一字符串转换为一个整数
parseFloat()把一个字符串转换为一个浮点数

1、 parseInt()可以将一个字符串中的有效的整数内容取出来转换为整数
2、parseFloat()和parseInt()作用类似,不同的是他可以获得有效的小数

3、如果对非String使用parseFloat()和parseInt()
它会先转换为String然后再操作

<script type="text/javascript">
      var a="123px";
      a=parseInt(a);
    </script>

③、转换为Boolean

调用Boolean()函数

数字转布尔值:出了0和NaN,其他都是true
字符串转布尔值:出了空串,其他都是true
Null和Undefined都会转换为false

8、运算符

运算符也叫操作符
通过运算符可以对一个或多个值进行运算,并获取运算结果
如:typeof是运算符,可以获得一个追的类型,它会将该值的类型以字符串的形式返回

①、算术运算符

***+,-,/,%, ***

1、当对非Number类型的值进行计算,会将这些值转换成Number在进行计算
2、任何值与NaN做运算都得NaN
3、如果对两个字符串进行加法运算,则会拼串,将两个字符串拼接成一个字符串
4、任何值与字符串做加法,都会先转换为字符串然后再和字符串做拼接
5、可以为任意数据类型+一个“”即可将其转换为String,这是一种隐式的类型转换,由浏览器自动完成,实际上它是调用String()函数
6、任意做减乘除运算时都会自动转换为number
可以通过为一个值-0*1/1来将其转换为Number
7%取模运算(取余数)

②、一元运算符

只需要一个操作数
1、+正好 ,-负号
2、对于非Number类型的值
它会先转换为Number,然后在运算
可以对一个其他的数据类型使用+,来将其转换为Number

③、自增自减运算符

自增++
1、通过自增可以使变量在自身的基础上增加1
2、对于一个变量自增以后,原变量的值会立即自增1
3、后++(a++),前++(++a)
4、无论a++还是++a,后会立即使原变量的值自增1
不同的使a++与++a的值不同
5、a++为原来的值,++a的值等于新值

自减–
与自增相反

④、逻辑运算符

JS为我们提供了三种

!非
1、!可以用来对一个值进行非运算
所谓非运算就是只对一个布尔值进行取反操作
true变false、false变true
2、如果对一个值进行两次取反,它不会变化
3、如果对非布尔值进行元素,则会将其转换为布尔值,然后再取反
可以为一个任意数据类型取两次反,来将其转换为布尔值

&&与
可对符号两侧的值进行与运算并返回结果
规则
1、两个值中只要有一个值为false就会返回false
只要都为true时,才返回true
2、JS中“与”属于短路的与
如果第一个值为false,则不会看第二个值

||或
可以对符号两侧的值进行或运算
规则
1、两个值中只要有一个true,就返回true
如果两个值都为false,才返回false
2、JS的“或”属于短路或
如果第一个值true,则不会看第二个值

&& ||非布尔值的情况
对非布尔值进行与或运算时,先将非布尔值转换为布尔值

与运算:
1、如果两个值都为true,则返回后边的
2、如果两个值中有false,则返回靠前的false
3、如果第一个值为true,则必然返回第二个值
4、如果第一个值为false,则必然返回第一个值

或运算:
1、如果第一个值为true,则必然返回第一个值
2、如果第一个值为false,则必然返回第二个值

⑤、赋值运算符

在这里插入图片描述

⑥、关系运算符

可以比较两个值之间的大小
如果关系成立他返回true,反之则返回false

大于号
判断符号左侧的值是否大于右侧的
如果关系成立他返回true,反之则返回false

大于等于
判断符号左侧的值是否大于或等于右侧的

小于号/小于等于

非数值的情况
1、对于非数值进行比较时,会将其转换为数字然后比较
2、如果符号两侧的值都是字符串时,不会将其转换为数字进行比较,而会分别比较字符串中的字符的Unicode编码
3、任何值和NaN比较都返回false值
4、比较字符编码时时一位一位进行比较,如果两位一样,则比较下一位,所以借用它来对英文进行排序
5、如果比较的两个字符串型的数字,可能会得到不可预测的结果
注:在比较两个字符串型的数字时,一定一定要转型

⑦、相等运算符

用来比较两个值是否相等

使用==
1、如果相等返回true,否则返回false
2、使用==来做相等运算
3、undefined衍生自Null,所以这两个值做相等判断,返回true
4、NAN不和任何值相等,包括本身
5、可通过isNaN()函数来判断一个值是否为NaN
如果该值为NaN返回true,否则返回false

使用!=
可用来判断两个值是否不相等

1、如果不相等返回true,否则返回false
2、不相等也会对变量进行自动类型转换,如果转换后相等也会返回false

===全等
1、用来判断两个值是否全等,它和相等类似,
不同的是它不会做自动的类型转换
2、如果两个值的类型不同,直接返回 false

!==不全等
1、用来判断两个值是否不全等,和不等类似,
不同的是它不会做自动的类型转换
2、如果两个值的类型不同,直接返回 true

⑧、条件运算符

条件运算符也叫三元运算符

语法:
条件表达式?语句1:语句2;

﹣执行的流程:
1、条件运算符在执行时,首先对条件表达式进行求值,
2、如果该值为 true ,则执行语句1,并返回执行结果
3、如果该值为 false ,则执行语句2,并返回执行结果
4、如果条件表达式的运算结果是一个非布尔值
会将其转换为布尔值在运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值