一 js对象

 BOM对象:browser object model浏览器模型对象

 window对象:定时器

 DOM对象:文档对象模型

 js对象:字符串对象,数组对象,日期对象,math对象

  new关键字,用于创建实例对象

 string属性:length:计算字符串的长度

 string方法:

  toLowerCase:字符串的字符全部转为小写。

  toupperCase:字符串的字符全部转为大写

  trim:去除两边的空格

  charAt:根据索引查找字符

  indexOf:根据字符查找索引

  lastindexOf:从右到左根据字符查找索引

  match:返回匹配字符串的数组,如果没有匹配就会返回null

  search:返回字符串的首字母位置索引

  substr:截断,找到开始截断的位置,然后在定义截取长度

  substring:阶段,找打开始阶段的位置,在截取到结束截断的位置,骨头不顾尾

  slice:切片,加上两个值,开始位置和结束位置,骨头不顾尾

  replace:替换

  split:分割,分割成一个数组类型

  concat:字符串的拼接。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8.  
  9. <script>
  10. var a=new String('HEllo ');
  11. console.log(a.length);
  12. console.log(a.toLowerCase());
  13. console.log(a.toUpperCase());
  14. console.log(a.trim());
  15. console.log(a.charAt(3));
  16. console.log(a.indexOf("l"));
  17. console.log(a.lastIndexOf("l"));
  18. console.log(a.match('lo'));
  19. console.log(a.search('l'));
  20. console.log(a.substr(1,3));
  21. console.log(a.substring(1,3));
  22. console.log(a.slice(1,4));
  23. console.log(a.replace('l','q'));
  24. console.log(a.split('l'));
  25. console.log(a.concat('word'))
  26.  
  27. </script>
  28. </body>
  29. </html>

 Array数组方法:

  数组的创建 :

  1. 创建方式1:
  2. var arrname = [元素0,元素1,….]; // var arr=[1,2,3];
  3.  
  4. 创建方式2:
  5. var arrname = new Array(元素0,元素1,….); // var test=new Array(100,"a",true);
  6.  
  7. 创建方式3:
  8. var arrname = new Array(长度);
  9. // 初始化数组对象:
  10. var cnweek=new Array(7);
  11. cnweek[0]="星期日";
  12. cnweek[1]="星期一";
  13. ...
  14. cnweek[6]="星期六";

   创建二维数组:

  1. var cnweek=new Array(7);
  2. for (var i=0;i<=6;i++){
  3. cnweek[i]=new Array(2);
  4. }
  5. cnweek[0][0]="星期日";
  6. cnweek[0][1]="Sunday";
  7. cnweek[1][0]="星期一";
  8. cnweek[1][1]="Monday";
  9. ...
  10. cnweek[6][0]="星期六";
  11. cnweek[6][1]="Saturday";

  join:链接,将列表中的字符拼接成一个字符串

  concat:一个列表添加多个元素

  toString:元类,将其他所有的类型都可以转换成字符串类型

  reverse和sort:数组排序,reverse反转数组;sort:按照第一个字符的ascii进行比较,如果一样,在比较下一个。

  数组切片:slice,根据索引进行切片

  删除和添加子数组:splice,根据指定的数组进行删除和添加。deleteCount删除整组元素的个数。value:表示在删除位置插入的数组元素,value可以省略。

  push和pop:push,压栈,向数组的最后一个位置追加一个元素,pop,弹栈,删除数组最后的一个元素,他们属于先进后出的操作。

  shift和unshift:shift删除一个元素,从第一个位置删除;unshift添加元素,从第一个位置开始添加。如果同时添加多个元素,会从后面的开始添加。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <script>
  9. var arr=['hello','word','egon'];
  10. console.log(arr.join(' '));
  11. console.log(arr.concat(['alex','yuanhao']));
  12. console.log(arr.toString());
  13. console.log(arr.reverse());
  14. console.log(arr.sort());
  15. console.log(arr.slice(0,2));
  16. console.log(arr.splice(1,1,'alex','egon'));
  17. console.log(arr.push('wupeiqi'));
  18. console.log(arr.pop());
  19. console.log(arr.shift());
  20. console.log(arr.unshift('alex','wupeiqi'));
  21. </script>
  22. </body>
  23. </html>

 总结js的数组特性:

  1. // js中数组的特性
  2. //java中数组的特性, 规定是什么类型的数组,就只能装什么类型.只有一种类型.
  3. //js中的数组特性1: js中的数组可以装任意类型,没有任何限制.
  4. //js中的数组特性2: js中的数组,长度是随着下标变化的.用到多长就有多长.
  5. var arr5 = ['abc',123,1.14,true,null,undefined,new String('1213'),new Function('a','b','alert(a+b)')];
  6. /* alert(arr5.length);//8
  7. arr5[10] = "hahaha";
  8. alert(arr5.length); //11
  9. alert(arr5[9]);// undefined */

 date对象:时间日期对象。

  创建Date对象:

  1. 创建Date对象
  2.  
  3.   方法1 不指定参数
  4.  
  5.    var nowd1=new Date();
  6.  
  7.    alert (nowd1.toLocaleString( ));
  8.  
  9.   方法2:参数为日期字符串
  10.  
  11.    var nowd2=new Date("2004/3/20 11:12");
  12.  
  13.    alert(nowd2.toLocaleString( ));
  14.  
  15.    var nowd3=new Date("04/03/20 11:12");
  16.  
  17.    alert(nowd3.toLocaleString( ));
  18.  
  19.   方法3:参数为毫秒数
  20.  
  21.    var nowd4=new Date(5000);
  22.  
  23.    alert(nowd4.toLocaleString( ));
  24.  
  25.    alert(nowd4.toUTCString( ));
  26.  
  27.   方法4:参数为年月日小时分钟秒毫秒
  28.  
  29.    var nowd5=new Date(2004,2,20,11,12,0,300);
  30.  
  31.    alert(nowd5.toLocaleString( )); #毫秒并不直接显示

  Date:默认当前时间对象,还可以传入具体的时间对象。

  toLocaleString:本地时间字符串

  toUTCString:国际时间字符串

  getDate:获取天

  getDay:获取星期

  getMonth:获取月,默认从0-11

  getFullYear:获取完整年份

  getYear:获取年

  getHours:获取小时

  getMinutes:获取分钟

  getSeconds:获取秒

  getMilliseconds:获取毫秒

  getTime:返回累计的毫秒数,从1970年1月1日午夜开始计算

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <script>
  9.  
  10. var date=new Date();
  11. console.log(date);
  12. console.log(date.toLocaleString());
  13. console.log(date.toUTCString());
  14. console.log(date.getDate());
  15. console.log(date.getDay());
  16. console.log(date.getMonth());
  17. console.log(date.getFullYear());
  18. console.log(date.getYear());
  19. console.log(date.getHours());
  20. console.log(date.getMinutes());
  21. console.log(date.getSeconds());
  22. console.log(date.getMilliseconds());
  23. console.log(date.getTime());
  24. </script>
  25. </body>
  26. </html>

  Date对象的方法——设置日期和时间:

  1. //设置日期和时间
  2. //setDate(day_of_month) 设置日
  3. //setMonth (month) 设置月
  4. //setFullYear (year) 设置年
  5. //setHours (hour) 设置小时
  6. //setMinutes (minute) 设置分钟
  7. //setSeconds (second) 设置秒
  8. //setMillliseconds (ms) 设置毫秒(0-999)
  9. //setTime (allms) 设置累计毫秒(从1970/1/1午夜)
  10.  
  11. var x=new Date();
  12. x.setFullYear (1997); //设置年1997
  13. x.setMonth(7); //设置月7
  14. x.setDate(1); //设置日1
  15. x.setHours(5); //设置小时5
  16. x.setMinutes(12); //设置分钟12
  17. x.setSeconds(54); //设置秒54
  18. x.setMilliseconds(230); //设置毫秒230
  19. document.write(x.toLocaleString( )+"<br>");
  20. //返回1997年8月1日5点12分54秒
  21.  
  22. x.setTime(870409430000); //设置累计毫秒数
  23. document.write(x.toLocaleString( )+"<br>");
  24. //返回1997年8月1日12点23分50秒

  Date对象的方法——日期和时间的在转换:

  1. getTimezoneOffset():8个时区×15度×4分/度=480;
  2. 返回本地时间与GMT的时间差,以分钟为单位
  3. toUTCString()
  4. 返回国际标准时间字符串
  5. toLocalString()
  6. 返回本地格式时间字符串
  7. Date.parse(x)
  8. 返回累计毫秒数(从1970/1/1午夜到本地时间)
  9. Date.UTC(x)
  10. 返回累计毫秒数(从1970/1/1午夜到国际时间)

 Date实例:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8.  
  9. <script>
  10. function date_time(){
  11. //定义当前时间
  12. var date=new Date();
  13.  
  14. //获取完整年份
  15. var year=date.getFullYear();
  16.  
  17. //获取月份
  18. var month=date.getMonth()+1;
  19.  
  20. //获取天
  21. var date_day=date.getDate();
  22.  
  23. //获取时
  24. var hours=date.getHours();
  25.  
  26. //获取分
  27. var minutes=date.getMinutes();
  28.  
  29. //获取秒
  30. var seconds=date.getSeconds();
  31.  
  32. //获取星期
  33. var day=date.getDay();
  34.  
  35. //打印字符串时间
  36. date=year+'年'+month_day(month)+'月'+month_day(date_day)+'日'+' '+hours+'时'+minutes+'分'+seconds+'秒'+' '+week_day(day);
  37. console.log(date)
  38. }
  39. date_time()
  40.  
  41. //自动补齐月份和日
  42. function month_day(num) {
  43. if (num < 10){
  44. //小于10的前面自动补0
  45. return '0'+num;
  46. }
  47. else {
  48. return num
  49. }
  50. }
  51.  
  52. //将星期转成汉字
  53. function week_day(num){
  54. var arr_week = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
  55. //根据传入的数字取出列表中相对应的值
  56. return arr_week[num];
  57. }
  58. </script>
  59.  
  60. </body>
  61. </html>

 如果将get换成set,还可以设置时间

 Math对象:提佛那个的是一个已经实例好了的对象,不需要再去实例化了

  abs:返回数的绝对值

  exp:返回e的多少指数(次方)

  floor:对数字下舍入,向下取整

  ceil:向上取整

  log:返回数的自然对数,底为e

  random:随机数

  max:返回最大值

  min:返回最小值

  pow:返回一个数的多少次方

  round:把一个数四舍五入到一个最接近的整数

  sin:返回数的正弦

  sqrt:返回一个数的平方根

  tan:返回角的正切

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <script>
  9. console.log(Math.abs(10));
  10. console.log(Math.exp(4));
  11. console.log(Math.floor(32.423442));
  12. console.log(Math.ceil(32.423442));
  13. console.log(Math.log(20));
  14. console.log(Math.random());
  15. console.log(Math.max(2,3,5,2,1,50));
  16. console.log(Math.min(32,4,32,423,1,43));
  17. console.log(Math.pow(3,4));
  18. console.log(Math.round(21.32342));
  19. console.log(Math.sin(2));
  20. console.log(Math.sqrt(16));
  21. console.log(Math.tan(5));
  22. </script>
  23. </body>
  24. </html>

二 BOM对象

 BOM对象:window对象

  window对象:也是全局对象,也就是窗口;所有浏览器都支持window对象。一个html文档就会对应一个window对象。就是为了控制浏览窗口的,不需要创建直接就可以使用。

 window对象方法:

  alert:弹出框,只有一个确认按钮

  confirm:弹出框,不光有一个确认按钮,还有一个取消按钮

  prompt:弹出框,里面有提示用户输入的输入框。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8.  
  9. <script>
  10. var a='hello';
  11. alert(a);
  12. confirm(a);
  13. prompt(a);
  14. </script>
  15.  
  16. </body>
  17. </html>

  open:打开一个新的浏览器窗口或者是查找一个自己已经命名好了的窗口

  close:关闭窗口

  setInterval:定义一个时间,以毫秒为单位。返回值是一个ID数。

  claearInterval:关闭定义的时间,传入的是一个setInterval返回的id值。

  setTimeout:定义一个时间,以毫秒为单位,执行一次后就会自动停止。

  clearTimeuot:关闭定义的时间,传入的是setTimeout返回的id值

  scrollTo:将内容滚动到指定的坐标。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6.  
  7. <script>
  8. function foo() {
  9. console.log("ok")
  10. }
  11. // var ID=setInterval(foo,1000);
  12. //
  13. // clearInterval(ID);
  14. // var ID=setTimeout(foo,1000);
  15. // clearTimeout(ID)
  16. </script>
  17. </head>
  18. <body>
  19. </body>
  20. </html>

2 方法使用

  2.1 alert confirm prompt以及open函数

  1. //----------alert confirm prompt----------------------------
  2. //alert('aaa');
  3.  
  4. /* var result = confirm("您确定要删除吗?");
  5. alert(result); */
  6.  
  7. //prompt 参数1 : 提示信息. 参数2:输入框的默认值. 返回值是用户输入的内容.
  8.  
  9. // var result = prompt("请输入一个数字!","haha");
  10. // alert(result);
  11.  
  12. 方法讲解:
  13. //open方法 打开和一个新的窗口 并 进入指定网址.参数1 : 网址.
  14. //调用方式1
  15. //open("http://www.baidu.com");
  16. //参数1 什么都不填 就是打开一个新窗口. 参数2.填入新窗口的名字(一般可以不填). 参数3: 新打开窗口的参数.
  17. open('','','width=200,resizable=no,height=100'); // 新打开一个宽为200 高为100的窗口
  18. //close方法 将当前文档窗口关闭.
  19. //close();

  示例:

  1. var num = Math.round(Math.random()*100);
  2. function acceptInput(){
  3. //2.让用户输入(prompt) 并接受 用户输入结果
  4. var userNum = prompt("请输入一个0~100之间的数字!","0");
  5. //3.将用户输入的值与 随机数进行比较
  6. if(isNaN(+userNum)){
  7. //用户输入的无效(重复2,3步骤)
  8. alert("请输入有效数字!");
  9. acceptInput();
  10. }
  11. else if(userNum > num){
  12. //大了==> 提示用户大了,让用户重新输入(重复2,3步骤)
  13. alert("您输入的大了!");
  14. acceptInput();
  15. }else if(userNum < num){
  16. //小了==> 提示用户小了,让用户重新输入(重复2,3步骤)
  17. alert("您输入的小了!");
  18. acceptInput();
  19. }else{
  20. //答对了==>提示用户答对了 , 询问用户是否继续游戏(confirm).
  21. var result = confirm("恭喜您!答对了,是否继续游戏?");
  22. if(result){
  23. //是 ==> 重复123步骤.
  24. num = Math.round(Math.random()*100);
  25. acceptInput();
  26. }else{
  27. //否==> 关闭窗口(close方法).
  28. close();
  29. }
  30. }
  31. }

  2.2 setInterval , clearInterval

   setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由     setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

    语法:<br>  setInterval(code,millisec)

    其中,code为要调用的函数或要执行的代码代码串。millisec周期性执行或调用 code 之间的时间间隔,以毫秒计算。

  示例:

  1. <input id="ID1" type="text" onclick="begin()">
  2. <button onclick="end()">停止</button>
  3.  
  4. <script>
  5. function showTime(){
  6. var nowd2=new Date().toLocaleString();
  7. var temp=document.getElementById("ID1");
  8. temp.value=nowd2;
  9.  
  10. }
  11. var ID;
  12. function begin(){
  13. if (ID==undefined){
  14. showTime();
  15. ID=setInterval(showTime,1000);
  16. }
  17. }
  18. function end(){
  19. clearInterval(ID);
  20. ID=undefined;
  21.  
  22. }
  23.  
  24. </script>

三 定时器练习

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <input type="text" id="d1" style="width: 200px">
  9. <button onclick="foo()">开始</button>
  10. <button onclick="time_end()">停止</button>
  11.  
  12. <script>
  13. function loop_time(){
  14. //获取当前时间字符串
  15. var date=(new Date()).toLocaleString();
  16. console.log(date);
  17.  
  18. //给input标签绑定上时间
  19. var new_date=document.getElementById("d1");
  20. new_date.value=date;
  21.  
  22. }
  23.  
  24. //声明ID
  25. var ID;
  26. function foo(){
  27. //如果ID=undefined
  28. if (ID==undefined){
  29. loop_time();
  30. //给ID赋上setInterval返回的ID值
  31. ID=setInterval(loop_time,1000);
  32. }
  33.  
  34. }
  35.  
  36. function time_end() {
  37. //关闭定时器
  38. clearInterval(ID);
  39. //重新给ID赋值undefined
  40. ID=undefined;
  41. }
  42. </script>
  43.  
  44. </body>
  45. </html>

 button标签下的onclick属性:监听事件。

 document.getElementById:根据id获取当前文档的某个标签。

  

  

  

  

  

前端之javascript的数据类型1和BOM对象的更多相关文章

  1. JS-安全检测JavaScript基本数据类型和内置对象的方法

    前言:在前端开发中经常会需要用到检测变量数据类型的需求,比如:判断一个变量是否为undefined或者null来进行下一步的操作,今天在阅读“编写高质量代码-改善JavaScript程序的188个建议 ...

  2. JavaScript基础16——js的BOM对象

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. 前端06 /JavaScript之BOM、DOM

    前端06 /JavaScript 目录 前端06 /JavaScript 昨日内容回顾 js的引入 js的编程要求 变量 输入输出 基础数据类型 number string boolean null ...

  4. web前端(14)—— JavaScript的数据类型,语法规范1

    编辑器选择 对js的编辑器选用,有很多,能对html编辑的,也能对js编辑,比如notepad++,visual studio code,webstom,atom,pycharm,sublime te ...

  5. 前端基础:JavaScript BOM对象

    JavaScript BOM对象 JavaScript Window - 浏览器对象模型 浏览器对象模型(BOM)使JavaScript有能力与浏览器"对话". 浏览器对象模型(B ...

  6. 前端面试的那些事儿(1)~JavaScript 原始数据类型

    前言 自我总结面试常问的一些细节,方便不断回顾与补充.第一次发表文章,如有问题或不足之处望及时指出. JavaScript 原始数据类型 1.1 基础数据类型 7大基础数据类型 boolean nul ...

  7. 前端之JavaScript基础

    前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript历史 1992年Nombas开发出C ...

  8. 第三篇:web之前端之JavaScript基础

    前端之JavaScript基础   前端之JavaScript基础 本节内容 JS概述 JS基础语法 JS循环控制 ECMA对象 BOM对象 DOM对象 1. JS概述 1.1. javascript ...

  9. 【前端】JavaScript

    一.JavaScript概述 1.JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEa ...

随机推荐

  1. Centos 下使用VLAN+Bridge 搭建KVM基础网络环境

    一.使用环境介绍 宿主机上同时运行多网段虚拟机,为了解决宿主机网卡资源紧张问题,采用如下网络模式:(本实验vlan 105:192.168.5.x    vlan108:192.168.8.x) 二. ...

  2. use crunch compression

    Crunch is a lossy compression format on top of DXTR texture compression. Textures will be converted ...

  3. day 06 列表去重, 数据类型的补充,编码,深浅copy

    因为重要,所以放前面 列表去重 l1 = [1, 2, 3, 4, 5] l2 = [3, 4, 5, 6, 7] set = list(set(l1 + l2)) # set自动去重,然后变成lis ...

  4. dev-client.js-配合dev-server.js监听html文件改动也能够触发自动刷新

    // 引入 webpack-hot-middleware/client var hotClient = require('webpack-hot-middleware/client'); // 订阅事 ...

  5. Linux tomcat

    一.简介 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.对于一个初学者来说 ...

  6. 16.Mysql SQL Mode

    16.SQL Mode及相关问题SQL Mode定义了Mysql支持的SQL语法和数据校验级别,Mysql支持多种SQL Mode.用途: 设置不同的SQL Mode可以对数据进行不同严格程度的校验, ...

  7. android 线性布局

    activity_main.xml线性布局 <?xml version="1.0" encoding="utf-8"?> <LinearLay ...

  8. mtcp的快速编译(连接)

    mtcp的快速编译 http://mos.kaist.edu/guide/config/03_build_mtcp.html 介绍DPDK中使用mtcp的文档 https://dpdksummit.c ...

  9. iOS.Notification.Bar.Color

    Reference: http://apple.stackexchange.com/questions/44246/what-determines-the-special-color-of-the-s ...

  10. [转载]linux awk命令详解

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...