1. js基础

一、js的基础语法

1、js引入方式
(1)行间引入,写在标签的行间属性中,并非所有行间属性都可以写js代码,只有于交互相关的属性可以编写js
(2)内联引入,将js代码写在 script 标签对中
(3)外联引入,将js代码写在后缀名为js的文件中,通过 script 标签的 src 属性引入到文档
内联与外联在当前文档的引入位置,可以将 script 标签写在:
(1)head 标签中(通常外联文件)
(2)body 标签中(通常 body 标签的末尾)
(3)body 标签后(通常内联文件)
js代码是自上而下执行,后执行的最终生效。
2、js注释
// 单行注释
/*
多行注释
*/
3、js的语言特点
js: 全称 JavaScript,简称 js
特点:
(1) js是运行在浏览器上的脚本语言
(2) js是运行时语言,没有编译过程,相对于需要编译的语言来说,安全性就降低了,代码执行过程中如果出现错误,后面的代码就不会执行了
(3) js是弱类型语言
(4) js是靠事件驱动的语言
(5) js是具有面向对象特点的语言
组成:ECMAScript + DOM + BOM
ECMAScript:js的语法规范,描述了js的规范和对象
DOM:Document Object Model 的缩写,称为文档对象模型,描述了js对文档内容的操作。
BOM:Browser Object Model 的缩写,称为浏览器对象模型,描述了js对浏览器窗口的操作。
js主要负责的工作:
(1) 数据交互,DOM渲染
(2) 事件驱动,逻辑操作
4、js的输出方式
1) console.log() 控制台输出
2) document.write() 文档输出
3)弹窗输出:
(1)alert() 警告窗口
(2)confirm() 提示窗口
(3)prompt() 询问窗口

二、变量和数据类型

1、变量
变量概念:可以理解为一个存储数据(值)的容器。
声明变量:通过关键字 var 后面跟上变量的名字来声明变量。
变量命名规则:
(1)只能包含数字、字母、_和$
(2)不能以数字开头
(3)不能使用关键字或保留字
(4)明确区分大小写
变量命名规范:
(1)驼峰命名
(2)见名知意
2、数据类型
基础类型:
(1)number类型(数值型);整数、小数、正数、负数
(2)string类型(字符串);通过单引号或双引号表示字符串,注意相同类型的引号不能嵌套。
(3)boolean类型(布尔型);true / false 。
(4)undefined类型(未知类型);undefined,当一个变量只声明未赋值时,会自动赋予undefined。
引用类型:
(1)object类型(对象类型);
null:空值/空对象,
array:数组
都属于对象类型。

三、运算符

1、赋值运算符: =
例如: var x = 10;
作用:将符号右侧的值赋值给符号左边的变量。
注意:不能将具体值赋值给另一个具体值。

2、算数运算符:+ - * / %
1. + :对符号两的数值进行加法运算
(1) 如果符号任意一侧出现string,那么会将另外一侧转化为string类型,并进行string的拼接操作,结果一定是string类型。
(2) 如果符号两侧没有string,都会被转化成number类型,进行算数加法运算,结果一定是number类型。
NaN:Not a Number 的缩写,是一个没有具体数值的number类型的值。
(3)- * / :将符号两侧的值,先转成number类型后进行对应的算数运算,得到的结果一定是number类型。
注意: / 运算除数不能是0,否则得到number类型的Infinity 无穷值。
(4)% :取余运算,计算符号左侧数值除以符号右侧数值所得的余数。

注意: 算术运算符优先级: / % 高于 + -
1. boolean类型参与算术运算,true会转化为1,false会转化为0。
2. undefined类型参与算术运算,undefined会转化为NaN。NaN于任何数值进行算数结果都是NaN。
3. string类型参与算术运算,string中所有的字符都是数字,转化成相同是number;string中出现不合法数字字符或非数字字符,会转化成NaN。
4. null参与算术运算会转化为0。

3、关系运算符:> < >= <= == != === !==
关系运算的结果一定是boolean类型,true表示关系成立,false表示关系不成立。
注意:NaN与任何值进行关系运算结果都是false。
两个字符串参与关系运算,将按位进行字符的ASICC编码进行比较,一旦比较出结果,就是关系运算的结果,不需要继续比较后面的字符。
两侧不都是字符串的时候,都转成number类型进行大小关系的比较。
编码区间:0-9 < A-Z < a-z
== 和 ===的区别:
== :比较符号两侧值是否相等
=== :比较符号两侧的值和数据类型是否都相等

4、逻辑运算符: && || !
&&:与逻辑,符号两侧条件都成立,逻辑成立
||:或逻辑,符号两侧条件至少成立一个,逻辑成立
!:非逻辑,对条件进行取反;非逻辑的结果一定是boolean类型。
关于数字进行逻辑判断,非0即为真。
进行逻辑判断为假:null、''、undefined、0、NaN
与逻辑的运算结果:
与逻辑成立:逻辑表达式的运算结果就是最后一个成立的表达式的运算结果。
与逻辑不成立:逻辑表达式的运算结果就是第一个不成立表达式的运算结果
或逻辑的运算结果:
或逻辑成立:逻辑表达式的运算结果就是第一个成立表达式的运算结果
或逻辑不成立:逻辑表达式的运算结果就是最后一个不成立表达式的运算结果。
逻辑优先: ! > && > ||

运算符的优先级:算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符

5、自增自减运算符: ++ 、 --
符号在前,先运算后赋值;符号在后,先赋值后运算
例如:

var a = 10;
var b = a++;
console.log(a + b);
结果就是: 21

6、常用的数学方法(保留小数)
(1)toFixed(n): 保留n位小数
(2)Math.floor(n):n向下取整,不管小数部分有多大,统统舍去只保留整数部分。例如:3.99999 -> 3
(3)Math.ceil(n):n向上取整,不管小数部分有多小,统统向整数进1。例如:3.0000001 -> 4
(4)3. Math.round(n):n四舍五入取整,小数部分大于等于0.5向整数进1,小于0.5舍去
(5)Math.random():生成0到1但是不包含1的随机小数
(6)Math.abs(n):计算n的绝对值
(7)Math.pow(x,y):计算x的y次方
(8)Math.sqrt(x):计算x的平方根

你可能感兴趣的:(1. js基础)