DAY-01 javascript基础语法
1.历史及概念
1.javascript:是一种基于对象的,时间驱动的,跨平台的,客户端脚本语法
2.发展:1995年时,由Netscape公司的Brendan Eich开发出来的,最初中liveScript,为了快速发展,借用了当时一个业界非常流行的词语java,于是更名为javaScript.后来微软进入浏览器行业,从IE3.0开始的搭载了一个javaScript的克隆版JScript.因为行业的竞争,导致出来了多个不同的版本,使得各种浏览器,在兼容程序方面出现了混乱。为了统一语法标准,1997 年,JavaScript 1.1 作为一个草案提交给欧洲计算机制造商协会(ECMA),第 39 技术委员会(TC39)被委派来“标准化一个通用、跨平台、中立于厂商的脚本语言的语法和语义,由来自 Netscape、Sun、微软、Borland 和其他一些对脚本编程感兴趣的公司的程序员组成的 TC39 锤炼出了 ECMA-262,该标准定义了名为 ECMAScript 的全新脚本语言。
2.js组成部分
- ECMA基础语法
- BOM 游览器对象模型( brower object module)
- DOM文档对象模型(document object module)
3.js的编写位置
三种方式:
-
内嵌
<script type="text/javascript"> document.write() alert() console.log() </script>
-
外部
<script type="text/javascript" src="code/1.js"> </script>
3.内联:
<div id="" onclick="alert('fdff')" ></div>
4.js注释
//单行注释
/**/多行注释
4.变量的数据类型
基本数据类型
-
string字符串
-
number数字
-
boolean布尔值
-
null 空值
1.表示一个空的对象,用typeof检查会返还一个object
-
undefiend 未定义
2.声明变量后未赋值,用typeof会返还一个undefiend
undefined值实际上是null衍生出来的,所以比较这两个
值,typeof会相等
引用数据类型
6.object
-
typeof 操作符
4.1数据类型的转换
其他数据类型转换为string
1.使用tostring()方法
2.string()函数
其他数据类型转换为number
1,number()
2,parseInt()
3,parseFloat()
其他数据类型转换为Boolean
1.Boolean()
5.标识符的命名
在JS中所有的可以由我们自主命名的都可以称为是标识符
- 例如:变量名、函数名、属性名都属于标识符
规则
-
标识符可以以字母,数字,_下划线,&开头,
-
开头不能是数字。
-
命名不能是关键字,保留字(一些保留字命名不会报错,但如果ECMAScript在未来将保留字纳入关键字使用,程序就有可能出错,如之前的class,debugger,extends等保留字在es6语法中已经作为关键字使用了。)。
关键字
保留字
-
命名规则
骆驼峰命名法
AxxBxx
6.变量的概念及基本运算
变量
1,相当于一个容器,用于保存字面量
字面量
2,一些不可以改变的值(例如:1.2.3)
声明和赋值
1,var 变量名 = 值(字面量);
写法
1,var a=1; b= 2; c=3;
2,var a=1;
var b=2;
var c=3;3,var a = b = c = 5
运算符(操作符)
1,算数运算符
2.赋值运算符
= 相当于把右边的值赋值给左边的变量
复合写法:
+=,*=,-=,/=,%=
a+=10,等于a=a+10
a=a*10…
3,关系运算符
1.(> , < , >= , <=)会返回布尔值
5>10—false
5<10—true
2.(== != ===)
==判断两个值是否相等
如果两个值类型不同,会自动发生类型转换,然后在进行比较
!= 不相等 用来判断两个值不相等,不相等返回true,反正false. 也会发生自动类型转换
3 === 用来判断两个值是否全等,不会发生类型自动转换,如果类型不同,则直接返回false.
4.NaN不和任何值相等,包括他本身
可以通过isNaN()函数来判断一个值是否是NaN
如果该值是NaN则返回true,否则返回false
var b = NaN; console.log(isNaN(b));
5.undefined 衍生自 null
* 所以这两个值做相等判断时,会返回true
5.逻辑运算符
1,或 ||可以对符号两侧的值进行或运算并返回结果
运算规则:
当两个值中,只要第一个为true,则直接返回结果
当第一个值为false,则直接返回第二个值
2,与 && 可以对符号两侧的值进行或运算并返回结果
当第一个值为true,则返回第二个值,
当第一个值为false,则返回第一个值,
3,! 可以用来对一个值进行非运算
true变false,false变true
逻辑运算都是转换为布尔值的,所以我们可以利用这一点,将其他数据类型转换为布尔值,(a==!!a)
6.自增自减运算符(单目运算符)
a++,后加
++a 先加
a–后减
,–a先减
7.三目运算符
表达式 ? 语句1:语句2;
a>b ? alert (“a比b大”) :alert(“b比a大”);
如果该值为true,则执行语句1,并返回执行结果
如果该值为false,则执行语句2,并返回执行结果
运算符的优先级
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EmesPPAH-1594525361654)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200706200913231.png)]
符)**
a++,后加
++a 先加
a–后减
,–a先减
7.三目运算符
表达式 ? 语句1:语句2;
a>b ? alert (“a比b大”) :alert(“b比a大”);
如果该值为true,则执行语句1,并返回执行结果
如果该值为false,则执行语句2,并返回执行结果
运算符的优先级
[外链图片转存中…(img-EmesPPAH-1594525361654)]