JS的用法;数据类型;关系运算符;js中的条件表达式;JavaScript的对象;BOM与DOM
-------------------------------------------------------------------------------------------------------------------------
JavaScript是直接嵌入在html页面中,由浏览器解释执行的脚本语言,具有与Java语言类似的语法。
其特点:
- 解释执行:不编译,由浏览器内置的JavaScript引擎直接解释,并逐行执行。
- 基于对象:内置大量对象。
------------------------------------------------------------------------------------------
JS的用法:
一.事件定义式:在定义事件时直接调用js。
例 <input type="button" value="A" onclick="alert('苍老师');"/>
二.嵌入式:在script标签中写js。(该标签可以写在页面的任何位置,但是通常习惯写在head里。)
例 <script>
//1.以function开头。2.不需要声明返回类型。3.函数名(),括号中可以有参数。
function f2(){
//js不区分单引号与双引号
alert("传奇哥");
}
</script>
三.文件调用式:在html页面的<head>中引用外部的.js文件。
1.将js代码写在一个单独的文件中,并保存位后缀为js的文件。
2.在<head>中添加<script>标签
3.设置<script>标签的“src”属性,指定js文件的url。
例 <script src="x.js">
<!-- 1.script标签中不能既写js又引入js,只能二选一。
2.引入js相当于将js复制到此处。
-->
</script>
--------------------------------------------------------------------------------------------
数据类型:
- JavaScript的变量在声明时不需要指定数据类型。
- 但是变量引用的数据拥有数据类型。
一.数据类型的隐式转换:不同数据类型在计算过程中会自动转换:
1. 数字+字符串:数字转换为字符串。
2. 数字+布尔值:true转换为1,false转换为0.
3. 字符串+布尔值:布尔值转换为字符串true或false。
4. 布尔值加布尔值:布尔值转换为数值1或0.
例 var str= "hello";
var num = 3.14;
var bol = true;
console.log(str+num);//hello3.14
console.log(str+bol);//hellotrue
console.log(num+bol);//4.14
console.log(bl+bol);//2
二.数据类型的转换函数:
1. toString:所有数据类型均可转换为String类型。
2. parseInt:强制转换为整数,不能转换则返回NaN。 (not a number)
例 parseInt("5.5");返回5
parseInt(5.12);返回5,所有也可以作为取整函数。
3. parseFloat:强制转换成浮点数,不能转换则返回NaN。
4. typeof:查询当前类型,返回string/number/boolean/object/function/undefined
5. isNaN:(is not a number ?)被检测表达式不是数则返回true,否则返回false。
三.特殊的数据类型:
1. null:表示无值或者无对象,可以通过给一个变量赋值null来清除变量的内容。
2. undefined:
- 声明了变量但从未赋值。
- 对象属性不存在。
----------------------------------------------------------------------------------------
关系运算符:
1. 全等:=== 若两个数的类型和数值都相同则返回true,否则返回false。
2.不全等:!== 若两个数的类型或者数值相同则返回true,否则返回false。
例 var m = "1";
var n = 1;
console.log(m===n);//false
console.log(m!==n);//true
------------------------------------------------------------------------------------------
js中的条件表达式:
-js中的条件表达式可以是任意表达式,即可以返回任意的类型的值,任何类型的值都对于一种布尔值。
------------------------------------------------------------------------------------------
JavaScript对象:JavaScript对象是JavaScript中最重要的API
JavaScript对象包含:
1.内置对象:String/Number/Boolean/Array/Math/Date/RegExp/Function等。
2.外部对象:
- window对象:
- dom对象:
3.自定义对象:
-------------------------------------------------------------------------------------------
内置对象:
一.String对象:
1.创建:var str = "xxx"; 或者 var str = new String("xxx");
2.属性:
- 长度:str.length
3. 常用方法:
- 大小写转换:str.toLoweCase()/toUpperCase();
- 返回指定位置的字符:str.charAt(index); //下表从零开始
- 返回指定位置的字符的Unicode编码:str.charCodeAt(index);
- 查询指定字符串:str.indexOf(findstr,[index]);str.lastIndexOf(findstr,[index]);
findstr是要查找的字符串,index是开始查找的位置索引,没找到返回-1.
- 获取子字符串:str.substring(start,[end]);
start是开始位置,end是结束位置加1,可以省略,省略则截取到最后。
- 替换字符串:str.replace(findstr,tostr);
- 切分字符串:str.split(btstr,[howmany])
二.Number对象:
- toFixed(num):转换为字符串,并保留小数点后一定位数。多余则四舍五入,不足补零。
三.数组对象:
1.通常的创建方式:
- 已知数据时:var a1 = [1,true,"小花"];
- 未知数据时: var a2 = new Array();
a2.push(2);
a2.push("小花");
a2.push(false);
2.属性:length,长度是可变的。
3.方法:
- 反向数组:x.reverse() 改变数组x中的数值顺序。
- 排序:默认的排序是按照string排序,可以自定义排序方式:
例 var a4 = [1,2,3,23,42,1,43,5,2];
a4.sort(function(a,b){return a-b;});
四.Math对象:无需创建就可以直接把Math作为对象使用,可以调用其所有属性和方法。
如:Math.PI、Math.max、Math.round()、Math.rendom()等
五.Date对象:
1. 创建:var now = new Date(); var time = new Date("2008/08/08 08:08:08");
2. 方法:
- 读写时间毫秒数:getTime(), setTime();
- 读写分量:getFullYear()、getDay()、getDate()以及setDate()等。
- 转换为字符串:toString()、toLocaleTimeString()、toLocaleDateString();
例 var d1 = new Date();
var d2 = new Date("2015/04/06 10:20:30");
console.log(d1.toLocaleDateString());//2016/5/6
console.log(d1.toLocaleTimeString());//上午12:02:29
console.log(d2.toLocaleDateString());//2015/4/6
console.log(d2.toLocaleTimeString());//上午10:20:30
d1.setFullYear(2015);
console.log(d1.getFullYear());//2015
console.log(d1.getMonth());//4
六.正则表达式RegExp对象:
1.创建:var reg = /pattern/flags; var reg = new RegExp("pattern",["flags"]);
flags标识有:g 匹配为表示全局模式 、 i 匹配时忽略大小写检测
2常用方法:
- reg.test(string):检索字符串中指定的值,返回true或false
- reg.exec(string):检索字符串中指定的值,返回找到的值。
- reg.replace(regexp,tostr):返回替换后的结果。
- reg.match(regexp):返回匹配字符串的数组。
- reg.search(regexp):返回匹配字符串的首字母位置索引。
七.Function对象:js中的函数就是Function对象。
1. 函数名就是指向Function对象的引用,使用函数名可以访问函数对象。
2. 函数默认返回undefined,可以使用return返回具体值。
3. js函数没有重载,调用时只要函数名一样,无论传入多少个参数,调用的都是同一个函数。
- 所有的参数传递给arguments数组对象。
- argument是一种特殊对象,在函数代码中表示函数的参数数组,可以使用arguments访问所有参数。
- arguments.length:函数的参数个数。
- arguments[i]:第i个参数。
4.创建匿名函数:var func = Function(arg1,...,argN){}
5.全局函数:praseInt/parseFloat/isNaN/eval
- eval:用于计算表达式字符串,或则用于执行字符串中的JavaScript代码。
如果参数中没有合法的表达式和语句,则抛出异常。
-------------------------------------------------------------------------------------------
外部对象:
一.BOM(browser object model):浏览器对象模型,用来访问和操纵浏览器窗口。
二.DOM(document object model):文档对象模型,用来操作文档。
- 定义了访问和操纵HTML文档的标准方法。
- 应用程序通过对DOM树的操作,来实现对HTML文档数据的操作。
三.window对象:
1.表示浏览器窗口,所有JavaScript全局对象、函数以及变量均自动成文window对象成员。
2.常用属性:
- document:窗口显示的HTML文档对象。
- history:浏览过窗口的历史记录。
- location:窗口文件地址对象。
- screen:当前屏幕对象。
- navigator:浏览器相关信息。
3.常用方法:
- alert(str):提示对话框,显示str字符串的内容。
- confirm(str):确认对话框,显示str字符串的内容,按确定返回true,其他操作返回false。
- 定时器:
1.周期性定时器:
- 启动:var tId = setInterval(exp,time):周期性触发代码。
- exp:执行语句。 - time:事件周期,单位为毫秒。
- 返回已经启动的定时器对象。
- 停止:clearInterval(tId)
例 var index = 1;
var id = setInterval(function(){
console.log(index++);
if(index==6){
clearInterval(id);
}
},1000);
2.一次性定时器:
- 启动:var id = setTimeout(fun.N);
- 停止:clearTimeout(id);fun执行完成后自动停止或在小于N毫秒时可以提前手动停止。
例 var id2 = setTimeout(function(){
console.log("ok!");
},3000);
clearTimeout(id2);
4.screen对象:包含有关客户端显示屏的信息,常用于获取屏幕的分辨率和色彩。
- 常用属性:总宽高:screen.width/height
可用宽高:screen.availWidth/availHeight
5.history对象:包含用户(在浏览器窗口中)访问过的url。
- length属性:浏览器历史列表中的url数量
- 方法:
1.history.forward():等同于点击“前进”按钮。
2.history.back():等同于点击“后退”按钮
3.history.go(-2):等同于点击两次“后退”按钮。
6.location对象:包含有关当前url的信息,常用于获取和改变当前浏览的网址。
- href属性:当前窗口正在浏览的网址地址。
例 修改页面地址栏: location.href="http://www.tmooc.cn";
- 方法:reload():重新载入当前网址,等同按下刷新按钮。
7.navigator对象:包含有关浏览器的信息,常用于获取客户端浏览器和操作系统信息。
如 navigator.userAgent:用户代理。