javaScript
一、概述
javascript特点:
1.用于完成html网页交互
2.脚本语言
3.弱类型的
4.客户端的脚本
5.解释性的,边执行边解释
6.区分大小写
组成:
ECMAScript、浏览器对象模型(BOM)和文档对象模型(DOM)
网页上引入js脚本三种形式
1.网页内部使用
<script type="text/javascript">
//js代码
</script>
2.引入外部js脚本
1)添加javascript文件,在里面编写代码
2)在html页面中
<script type="text/javascript" src="要引入文件的相对路径" >
</script>
3.在网页标签元素的属性中添加
<input type="button" name="btn" value="请点击" onclick="alert('hello world!!!')"/>
注意:
head 内的 JavaScript 需要执行结束才开始渲染 body,所以尽量不要将 JS 文件放在 head 内。可以选择在 document 完成时,或者特定区块后引入和执行 JavaScript。
而 CSS 应当写在 head 中,以避免页面元素由于样式缺失造成瞬间的白页或者给用户闪烁感。
三种引入JavaScript脚本的方式适用场景?
- 如果在标签属性中添加,只能作用于本标签,不能实现效果的重用
- 如果在页面内部通过Script标签引入,可以实现本页面的效果共享
- 引入外部js文件,可以实现页面间的代码共享,保证网页结构代码和效果代码相分离
输出语句
1.alert(“输出信息”);
网页弹框
2.console.log();
控制台输出信息
3.document.write();
页面显示内容
注释:
1.单行 //
2.多行注释 /* */
变量及数据类型
javaScript是弱类型的,松散型的
1.变量
变量声明
var 变量名;
同时定义多个变量:
var 变量名1,变量名2,....;
变量赋值
var 变量名=值;
同时定义多个变量赋值:
var 变量名1=值,变量名2=值,....;
变量声明赋值; (javaScript弱类型的)
1.先声明再赋值
2.不用声明直接赋值 x=10;//ok
2.数据类型
1)基础数据类型
String 字符串
定义 :
单引号(‘ 字符串’)或者双引号(“字符串”)都可以,但是前后必须匹配
var str1="";var str2='';
注意:
js中 双引号内不能包含双引号,单引号内不能出现单引号。如果需要嵌套定义,必须使用单双引号交替。
嵌套定义建议使用外双内单
var word="网址是 ‘www.baidu.com’";
转义符:
序号 | 特殊字符 | 含义 | 例子 |
---|---|---|---|
1 | \ ’ | 单引号 | |
2 | \ " | 双引号 | |
3 | \ n | 回车换行 | |
4 | \ t | Tab,大空格 | |
5 | \ r | 换行 | |
6 | \ f | 换页 | |
7 | lv | 跳格 | |
8 | \ \ | 显示反斜杠 | |
9 | \ b | 退格 |
number
javascript中数字类型不区分整数和小数,都用number类型表示,支持正负值
var n1=100;var n2=90.99;
特殊值:NaN
非数值(Not a Number)
特点:
- 任何涉及NaN的操作(例如NaN/5)都会返回NaN。
- NaN与任何值都不相等,包括NaN本身。例如下面的代码会返回false
检测:
使用 isNaN():检测一个值是否为NaN
规则:
isNaN方法会把参数转换为数值,若不能转换为数值则函数返回false。
而任何不能被转换为数值的值都会导致这个函数返回true。
Boolean 类型
值:true false
转型函数Boolean()。
规则:
1. String类型:任何非空字符串转换为true,空字符串("")转换为false; 2. Number类型:任何非零数值(包括无穷大)转换为true,0和NaN转换为false; 3. Object类型:任何对象转换为true,null转换为false; 4. Object类型:任何对象转换为true,null转换为false; 5. Undefined类型:只能转换为false。 注意:当遇到流程控制语句(如if语句)也会对数据自动执行相应的Boolean转换
2)复合数据类型
3)特殊数据类型
undefined (未定义型)
变量声明了,但是没有初始化
var x;//声明但是没有初始化console.log(x);//undefinedconsole.log(y);//没有定义 y is not defined
注意:变量未初始化和变量没有定义是不同的概念
null (空的值)
跟undefined的区别是:
undefined变量定义了 但是跟本就没有赋值
var z=null;
null,变量定义了,有值,但是值就是null
4)检测数据类型
-
typeof(变量)
来判断一个值或变量究竟属于哪种数据类型,其返回的数据类型有以下几种:
undefined、boolean、string,number,object,function,symbol(符号,ES6新增)
-
instanceof
用于判断复合数据类型
3.运算符
1)算数运算符
运算符 | 描述 |
---|---|
+ | 求和,或者字符串拼接 |
- | 求差 |
* | 求积 |
/ | 求商 |
% | 求余数 |
++ | 递增,加一 |
– | 递减,减一 |
2)赋值运算符
运算符 | 描述 |
---|---|
= | 右边赋值给左边 |
+= | x+=y 等价于 x=x+y |
-= | x-=y 等价于 x=x-y |
*= | x*=y 等价于 x=x*y |
/= | x/=y 等价于 x=x/y |
3)比较运算符
运算符 | 描述 |
---|---|
=== | 恒等于,完全一样 |
!== | 不恒等,完全不一样 |
4)逻辑运算符
&& || !
数组
1.创建
1)实例化Array对象
var 数组名=new Array();var 数组名 =new Array(值1,值2,值3,...);//例如var t=new Array("abc",123,true,null);
2)字面量
var 数组名=[];var 数组名=[值1,值2,值3....];//例如var v=[123,'abc',,,];//数组元素可以为空
3.parseInt() 解析字符串并返回一个整数或NaN,可以解析二进制,八进制和十六进制的数值
4.parseFloat():解析字符串并返回一个浮点数
parseFloat()函数始终都会忽略前导的零,且不具备传入基数的能力。
浮点数值的最高精度是17位小数,但在进行算数计算时其精确度远远不如整型。1.infinity :当大于或小于某个界限时,该值会被自动转换为特殊值——Infinity。 isFinite()函数可以判断一个数值是否无穷大。 它会把参数转换为数值,如果得到的结果是NaN、Infinity或-Infinity,函数返回false(假),其他情况返 回true(真)。
字符串:
1.字符串的值不能更改
2.toString()方法,可以将 数值,对象,布尔,字符串 转换成字符串
var num=100;
console.log(num.toString());//以十进制的形式转换成字符串
console.log(num.toString(2));//以二进制的形式转换成字符串
console.log(num.toString(8));//以八进制的形式转换成字符串
console.log(num.toString(16));//以十六进制的形式转换成字符串
注意:null和undefined 不能调用这个方法
可以使用 String()来进行判断
3.String()函数
可以将任意类型转换成String字符串,包括null和undefined