一、初识JavaScript
1.JavaScript的组成(专用于网页交互)
完整的JavaScript由ECMAscript(语法)、Browser Object(DOM访问和接触网页内容的接口、BOM浏览器窗口的缩放等)(特性)组成的。
2.在HTML中使用JavaScript
可以在head
或body
中使用<script>
嵌入JavaScript脚本。
嵌入内部脚本就直接使用
<script type="text/javascript">
</script>
嵌入外部脚本就
<script src="">
</script>
二、js的语法规则
1.JavaScript注释与分号
//单行注释
/**/多行注释
语句结束加分号
2.语法
ECMAscript中的一切(变量、函数名、操作符)都区分大小写。
3.标识符
- 标识符:变量、函数、属性的名字、函数的参数
- 命名规则:
- 由字母、数字、下划线、美元符号$ 组成。
- 不能以数字开头。
- 不能使用关键字、保留字作为标识符
4.变量
1.概念
ECMAscript的变量是松散类型
松散类型:可以用来保存任何类型的
换句话说:每个变量仅仅是用于保存值的占位符而已。
2.变量的声明和赋值
- 变量声明:var 变量名
- 变量赋值:
声明的同时赋值:var 变量名=值;
var age=18;
先声明后赋值:变量名=值;
var name_01;
name_01="nanora";
一次声明多个变量,用逗号隔开
var id,sex,age,name="nanora";
p.s.省略var声明的变量是全局变量
三、JavaScript数据类型
1.typeof
- 功能:检测变量类型。
- 语法:typeof 变量 或typeof(变量)。
- 返回值:undefined(未定义)、number(数值)、boolean(布尔值)、string(字符串)、object(对象或null)、function(函数)。
- 变量本身没有类型,里面添加东西了以后才会有类型。
1.undefined
声明一个变量但是并没有给他赋值
2.null
- 表示一个空指针对象
- 如果定义的变量准备在将来用于保存对象,那么最好将变量初始化为null。
- undefined是派生自null值的,因此
undefined==null; //true
3.Number
- 表示整数和浮点数
- NaN(Not a number)非数值:是一个特殊的数值
- 任何涉及NaN的操作(例如NaN/10),都会返回NaN。
- NaN与任何数都不相等,包括NaN本身。
4.isNaN()
- 语法:isNaN(n)
- 功能:检测n是否是“非数值”
- 返回值:boolean 例如:
console.log(isNaN(age)); //判断age是否为非数值
。 - 参数:参数n可以是任何类型。
- isNaN()对接收的数值,先尝试转化为数值,再检测是否为非数值。
- 所有加了引号的数字都是字符串。
2.数据转换
1. 非数值转换成数值:
Number() 把一个值强制转化为数值类型
parseInt() 、 parseFloat()专门用于把字符串转为数值
2. Number
var name="nanora";
id=Number(name);
console.log(typeof name); //字符串转成数字没办法转,故NaN。
3. parseInt() => 提取整数
会忽略字符串前面的空格,直至找到第一个非空格字符。
- 转换空字符返回NaN。
- 可提供第二个参数,即使用多少进制。
- 如果第一个字符不是数字,则会返回NaN。
4. parseFloat() => 提取浮点数
从第一个字符开始解析每个字符,直至遇见一个无效的浮点数字为止。
- 只有第一个小数点有效,第二个小数点就无效了。
- 会忽略前导的零。
四、js中的string和bollean类型
1.String
用于表示字符串,可以由单双引号表示。
2.toString()和String()
- 语法:str.tostring()
- 功能:将str转化为字符串
- 返回值:str的一个副本
- 参考:str是转换的内容,可以是数值、布尔值、对象和字符串。
- 说明:在不知道要转换的值是不是null或undefined的情况下,还可以使用String()函数,他能够将任何类型的值转化为字符串(强制转换)。
- 字符串必须放在引号之内
3.Boolean
用于表示真假的类型,即ture表示真,false表示假。
var isChild=false;
var isStudent=true;//布尔型
console.log(typeof isChild);//Boolean
console.log(isChild.toString());//false=仅代表字符串,和真假无关
- 除0以外的所有数字,转换为布尔型都为ture
- 除 “ ”之外的所有字符,转换为布尔型都为ture
- null和undefined转换为布尔型为false
五、js算数操作符
1.什么是表达式
将同类型的数据(如常量、变量、函数等),用运算符号按一定的规则连接起来的、有意义的式子称为表达式。(运算、比较等)
2.操作符的分类
1.算数操作符
+、-、*、/、%取余…
2.递增和递减
- 递增:++a与a++
++a先返回递增之后的值
a++先返回a的原值,再返回递增之后的值 - 递减同理
3. 赋值操作符
简单赋值:=
复合赋值:+=、-=、*=、/=、%=
4.比较操作符
var x=10,
y="10";
z=x==y; //值是否相等 true
z=x===y; //全等 false
5.三元操作符
- 语法: 条件?执行代码1:执行代码2;
- 说明:(可代替if语句)条件成立时,执行1,否则2。
var score=85;
var result=(score>60)?"及格":"不及格";
console.log(res&ult);
六、逻辑操作符
1.逻辑操作符:
1. &&:与
如果有一个条件操作数不是布尔值,则遵循:
- 如果第一个操作数隐式类型转化后为ture,则返回第二个操作数。
- 第一个为false,则 返回第一个数
- 操作中只要一个是null、NaN、Undefined,则返回值是null、NaN、Undefined。
2. ||:或
在有一个操作数不是布尔值的情况下,逻辑与操作就不一定有返回值,此时:
- 如果第一个操作数隐式类型转化后为ture,则返回第一个操作数。
- 第一个为false,则 返回第二个数
- 操作中如果都是null、NaN、Undefined,则返回值是null、NaN、Undefined。
3. !:非
- 无论什么数据类型,逻辑非都会返回一个布尔值。
- !!同时使用两个逻辑非操作符时:
- 第一个逻辑非无论基于什么操作数都会返回一个布尔值
- 第二个非,就是对该布尔值求反的操作