JS 学习笔记

1.pdo y预处理 
2.js 是基于 对象和类的 一门网站编程语言
3.js 放置 在 Head 和 body 中
4.  js 基础对象:
	window //窗口对象
	document //文档对象
	document.documentElement //html 对象
	document.body // body 对象
	document.head //head 对象
先好 标签 ,在把它变成 一个 JS 元素对象
设置对象的宽和高的时候 不带单位 , 是一个 整数
JS 可以改变 一个标签的 样式和添加 事件,就是所谓的特效
 js的变量:
   1. 字符串
   2.整形  ->双引号当中的东西
   3.浮点  
   4.布尔Boolean : true 和  false :
   			转布尔类型的方法:(1):Boolean(num);  (2):!!num; //就是前面加两个感叹号
   		转布尔类型哪些为假:0  , false  ,"",	NaN ,undefined, null
   		转布尔类型哪些为假:
   5.数组 的定义:
   		1. var arr = new Array(1,2,3,4,5);
   		2. var arr = new Array();
   			arr[0]="gfd"f;
   			arr[1]="fd";
   			arr[2]="hjh";
   		3.var arr=[1,345,45,4,564];
   		4.var arr=[];
   			arr[0]="dfd";
   			arr[1]="hty";
   		5.
   6.Js的对象
   		1.alert(window.document.documentElement);
   		2.var obj = new Object(); //空对象
   		3. josn 对象: var obj = {
   					"neme":"shiwei",
   					"age":"12",
   					"tryr":"iui"
   					}; //相当于键值对
   			alert(obj.name); //打印 name 属性的值为: shiwei

   7.json 对象
   8.NaN 是 Not a Number 的缩写,不是一个数字
   		将一个字符串 强制类型转换为数字 ,用Number();
   9.null
   10.undefined
Global 对象存在,但打印不出来,但是他的几个方法非常有用,可以随便用,例如:
   1.var num = "12px";  
	alert(parseInt(num));
	结果为 10;
   2.isNaN();
   3.typeof(num); //检测对象的数据类型,这个方法 可以随便用。
 		而 tupeof(数组);的时候 。结果为Object ,原因是 数组也是 new 出来的。
   4.parseFloat();
   5.eval();//将一个表达式 字符串当成表达式来执行,例如:
   		var str = 'num=10+5';
   		eval(str);
   		alert(num); //结果为15
   6.String();//强制类型转换,调用时 不需要对象,直接使用
   7.Number();//强制类型转换
   8.Array();//强制类型转换
   9.Bool();//强制类型转换
   10.encodeURLComponent();
   11.decodeURLComponent();
*******eval()方法用于把 json字符串转换为 json对象,供 Js 使用:  
1>var str ='{"name":"wang"}';
	eval(str);  会报语法错误,而下行就是对的,加了个圆括号
2>var str ='({"name":"json"})';eval();完一个json 就是一个对象
	alert(eval(str).name);  结果为 wang 
3>var str ='{"name":"json"}';
	var obj = eval("("+str+")");  //很重要重要
	alert(obj.name); 结果也为 wang ,也可以达到目的	
总结: 圆括号 里面的东西本来就可以执行
 JS 对象 一般有两大门派;
 		1.浏览器底层对象 例如window ,document 和页面当中标签对象
 		2.Js 语言 当中 内嵌的 一些对象 例如 new 来的,或者是NaN
1.new  创建对象 用的
2.this  代表本对象
3.in  包含运算符,检查这个属性 是否属于这个对象
   var obj = new Object();
   obj.age = "user1";
   alert("age" in obj);  结果为 true ,属性要用双引号括起来
   对于数组来说下角标 是 数组的 属性
   var obj = new Object();
   obj.name = "shiwei";
   obj.age = "12";
   obj.sex = "male";
   for(var i in obj){
      alert(i);
   }
4.instanceof 检查某个对象 是否由 某个 构造函数产生的
5.delete 不能删除 用Var 定义的变量, 其他的 都可以 用delete 删除
   var obj=["a","b","c"]
   delete
onclick  鼠标单击事件
onblur 鼠标失去焦点事件
js 不支持索引数组
js 只有对象的属性才是字符串,不允许是数字
js 中数组的下标不允许是字符串,只能是数字。

Js 语法:
1.if....else
2.for 
3.while 
4.switch...case..
5.for..in...
6.with
   with(document){
      write("<h1>"+"aaaa"+"</h1>");
      write("<h1>"+"bbbb"+"</h1>");
      write("<h1>"+"cccc"+"</h1>");
      write("<h1>"+"dddd"+"</h1>");
     }
消息框:
1.alert();  警告 : 括号中可以直接写入数字,不用加双引号
2.confirm(); 确认
3.prompt(); 提示

Js 变量作用域:
只有在 函数内定义的带 Var 的是局部变量, 在其他地方定义的全都是 全局变量。

Js 函数:
 有名的函数:   function show(){}
 无名的函数: obj.say = function(){}
               obj.say(); 调用

Js 内置对象:
      1.数学
      2.日期:
      3.定时器:
      4超时器:
      5.字符串
      6.数组:

1> 数学对象:
      属性: Math.PI  : 圆周率
      方法: 
      Math.ceil(); 上取整
      Math.floor();  下取整
      Math.round();  四舍五入
      Math.random(); 0~~~~1之间的一个随机数
      Math.max();alert(Math.max(1,2,54,96,6)) //取最大
      Math.min(); 、、取最小

2. 日期对象:
      var date = new Date();  //得到系统时间,但是格式不是我们想要的
      date.getFullYear(); //得到年数, 例如2018
      date.getMonth(); //得到 月数 , 但是要加一,Because 输出结果是从0~~~11
      date.getDate(); // 得到 日 数
      date.getHours();//得到 当前的 小时 数
      date.getMinutes(); // 得到当前的分钟数
date.getSeconds(); //得到当前的 秒 数

date.toLocaleString(); //把时间本地化,例如 2018年10月25日下午12:45:45
Interval : 时间间隔
定时器:
setInterval();    //开启一个定时器
clearInterval();   //停止一个定时器,括号中为一个定时器对象。

超时器:
setTimeout();   //开启一个超时器,只执行一次
clearTimeout();

字符串函数:
      属性:length
      方法:
      indexOf()  //检索第一次出现的字符串
      lastIndexOf()  //检索最后次出现的字符串
      substr(1,5)  //截取字符串,第一个参数为开始的下标,第二个为长度
      slice(start,end)  //也是截取字符串,不过两个参数为开始和终止下标。不包含结束下标
      split(reg)   //把字符串切割为字符串数组,支持正则分割
      search(reg) //匹配到 返回的是首次出现的位置。 匹配不到的 是 -1
      match(reg)  //匹配到返回的是匹配的字符串数组, 匹配不到的是 null
      replace(reg,"str") //返回的是替换后的新字符串,若没有替换, 则返回原字符串。




数组函数:
属性:length;
pop()  //弹出数组最后一个元素的值,返回并且改变原数组
push()  // 从数组最后压入一个值,并且返回数组长度
shift()   //从开头删除一个元素,返回并且改变原数组
unshift() //从数组开头压入一个值,并且返回数组长度
reverse() // 把数组元素进行反转,
concat()  //连接多个数组
slice(start, end) // 对数组进行切片
//在 Js 中经常拿着函数名乱跑,都没有圆括号,
  //注意,此处之添加一个回调函数,只写函数名,没有后面的原括号,
  意味着我只要你的函数代码,但我并不让你的函数执行,
 sort(show) 
   //show(a,b){
   return a-b; //正序
   return b-a; //倒序
   } 

splice(start,num,padding)  //返回删除并填补的字符串,
//2,1,"abc" 从下标为 2 开始,删除 1个, 并且在删除位置插入abc
//2,3,"abc" 从下标为 2 开始,删除3个,并且在删除位置插入abc

常用 Js Dom 对象:(document)文档对象
   1.window对象
   2.document对象
   3.document.head对象
   4.document.body对象
   5.document.title对象
   6.document.documentElement对象

获取元素对象:
   1.document.getElementById();  通过标签的id 属性
   2.document.getElementsByTagName();  通过标签名,结果为一个数组
   3.document.getElementsByClassName(); 通过标签的 class 属性
   4.document.getElementsByName();  通过标签的  name 属性

获取页面上的所有的元素对:
document.getElementsByTagName("*");

总结元素对象常用的属性:
      <h1><span id="sp1">0001</span></h1>
      obj.innerHTML;                 :<span id="sp1">0001</span>
      obj.length;                    :长度
      obj.outerHTML;  //获取整个标签  :<img src=""><span id="sp1">0001</span></img>
      obj.innerText;  //文本内容      :0001 
      obj.textContent;  //只是文本内容:0001  标准
      obj.tagName;  //获取标签名




如何判断ie 浏览器 和 非 ie 浏览器:
document.all;  这种语法只有 IE 支持,是老用法

获取高度:
      1.文档的高 屏幕的文档区域的高
       document.body.clientHeight  //body的高
       document.body.clientWidth 宽
      2.有效的高 屏幕可视的高
       document.documentElement.clientHeight  //屏幕看得到的高
        document.documentElement.clientWidth  宽
      3.屏幕的总高度
       document.documentElement.scrollHeight  //出现滚动条时的总高度
      4.滚动的高度
       document.documentElement.scrollTop    //有滚动条时已经滚动的高
      document.body.scrollTop   //谷歌中获取已经滚动了的高
      window.scrollBy(向右滚动的像素数,向下滚动的像素数),


测试一个 Div 的一些高度:
obj.clientHeight;  //本身的高
obj.offsetHeight;   //包含边框的高



定义对象: obj = new Object();
元素对象:   obj = document.getElementById("imgid");
json 对象: obj = {"name":"user1"}

浏览器默认行为:
      <a href="index.php"  target="_blank"></a>
      <input type="submit" name="sub" value="提交">
      <input type="reset" name="set" value="重置">
      //事件标签返回 return false 就会阻断标签本来的默认行为
      例如:<a href="javascript:;" onclick="alert(1); return false;">
      可用于登录验证

事件绑定:
      1.<button id="bid" onclick="js"></button>
      2.<button id="bid"></button>
         <script>
            bid = document.getElementById("bid");
            bid,onclick=function(){
            alert(111);
            }
         </script>

Js 事件类型:
      1.onclick // 单击
      2.ondblclick  //双击
      3.onmouseover  // 鼠标被移到某元素上之上
      4.onmouseout   //鼠标从某元素上离开
      5.onmousedown  //某个鼠标按键被按下
      6.onmouseup   //某个鼠标按键被松开
      7.onmousemove  //鼠标被移动
      8.onkeydown   //键盘上某个键被按下
      9.onkeyup   //键盘上某个键被松开
      10.onkeypress  //键盘上某个键被按下或者按住
      11.onblur  //元素失去焦点
      12.onfocus // 元素获得焦点
      13.onreset // 重置按钮被按下
      14.onsubmit  // 提交按钮被按下
      15.onselect  //文本被选择
      16.onresize  //窗口或框架被调整尺寸
      17.onload  //某个页面或图像被加载完毕
      18.onabort  //图像加载被中断
      19.onerror  //当加载文档或者是图片时失败了
      20.oncontextmenu  // 右键上下文菜单
      21.

      Js 事件方法
      focus()
      select()

浏览器对象模型的英文缩写:
   brower Object Model:
   1.window  打开页面open(),alert().定时器
   2.navigator 浏览器对象 ,获取客户端浏览器版本
   3.screen 屏幕对象,获取客户端分辨率
   4.history 对象,获取上一个历史
   5.location 地址栏,页面跳转或者加载当前页面
   6.document 对象(DOM),文档对象
    

window对象:
      属性:
      self: 返回对当前窗口的引用。等价于 Window 属性
      frames  //窗口数组
      length //frame 个数
      name // 窗口名字 : target="win2"
      opener  //打开我的那个窗口(父窗口)
      parent //父窗口
      top //顶级窗口
      closed //测试某个窗口是否被关闭
      window.opener; //此属性返回 一个 父 窗口的 window 对象

      方法:
      open("right.html","win2","特性"); //返回所打开的 子 窗口的 window 对象

      窗口特性:
      //注意: 其中的有些属性很多浏览器已经都不支持了。用是自己就侧一测吧。
         fullscreen = 1|0 //是否全屏
         width ="" //窗口宽
         height  ="" // 窗口高
         menubar // 是否显示菜单
         toolbar //是否显示工具菜单
         location //是否显示地址栏 ,只有在工具栏显示的情况下,设置地址栏不显示才起效果,其他情况没有用。
          fullscreen//是否全屏
         top 和 left  // 位置坐标

window的方法:
      alert();
      confirm();
      prompt();
      setInterval();
      clearInterval();
      setTimeout();
      clearTimeout();
      close();
      moveTo(); //窗口移动到一个坐标处
      moveBy();  // X 和 Y 移动多少,
      resizeTo();  //改变大小到 多少(x,y)
      resizeBy();  //每次增加大小多少
      scrollTo();  //当有滚动条的时候, 滚动到多少
      scrollBy();   //滚动增加多少

navigator对象:
      属性:
      appName: //大概判断
      userAgent //更精确的版本

history:
   方法:
      go(); //退回前一页面参数为 -1,向前进 为正数
      back();  //后退历史,与  go  相反 
      forward(); //前进一个历史
      go(2);  // 向前进两个历史
location对象:
   属性:
      hash: //获取url 的锚点   #abc
      href : 当前的 url 的地址,属性赋值则跳转也可以,保留历史,
      不写href ,直接写 location =" index.html"; 也可以
      pathname: //页面的名称
      port : 端口 :80 但默认不显示  
      search: 参数 ?id=10&name=user1
   方法:
      reload(); //加载当前页面,刷新当前页面
      replace(); //加载当前页面, 还就可以跳转(地址替换),但是不留历史
Screen对象:
   属性:
         availHeight 返回屏幕的高度(不包括Windows任务栏)
         availWidth  返回屏幕的宽度(不包括Windows任务栏)
         height   返回屏幕的总高度
         width 返回屏幕的总宽度      

Js DOM 属性和方法:

元素对象常用属性:<h1 id="h1id" class="h1class" name="na"> <span> test</span>  </h1>
      obj.getAttribute();
      alert(obj.id);  //结果为:h1id
      alert(obj.calss); //不可用
      alert(obj.name); //不可用
      alert(obj.title); //结果为 title 属性值
      alert(obj.style); //结果为 style 属性值
      alert(obj.className);  结果为 class 属性值

XML DOM 内容:
               获取元素对象方法:
                     document.getElementById(); //通过 id 属性
                     document.getElementByTagName();  // 通过 标签名
                     document.getElementByClassName();  // 通过 class 属性
                     document.getElementByName();  // 通过 name 属性,不是所有标签都有 name 属性

               万能的 获取 元素对象的属性的方法:
                     obj.getAttribute("class");
               万能的 设置 元素对象的属性的方法:
                     obj.setAttribute("name","shiwei");

               <h1 id="h1id" class="h1class" name="na"> <span> test</span>  </h1>
               获取元素标签内的 HTML 内容:
                     obj.innerHTML;  结果为: <span> test</span> 

               获取元素标签内的 Text 内容:
                     obj.textContent;  结果为:test

               获取元素标签外的  html 内容:
                     obj.outerHTML;  结果为:整个标签all

               获取元素对象的标签名:
                     obj.tagName;  结果为: h1
      
在 Js 中根本就没有所谓的 数组 ;只是以 一部分 数组元素为下标的数组对象
 常用的不外乎:图片、a 链接 、表单、 表格、锚点、框架里的帧

文档内常用的集合:
         表单:
         1. forms集合:    //所有的 form 标签元素集合 
         2. elements集合; //表单子元素input . select textarea
         3. options 集合;//下拉菜单
         表格:
         4. rows 集合;  //表里的行
         5. cells 集合; //行里面的格

         6. images集合;  img 标签集合
         7. links 集合; a 标签集合
         8. anchors集合; 具有 name 属性的 a 标签的
         9. frames 集合;  frame 标签集合

Ajax 无刷新技术:
-------------------------------------------------------
1.找到 Ajax 对象:obj= xmlHttpRequest(xhr)
 huohu:
    xhr = new XMLHttpRequest();
 IE:
   xhr = new ActiveXObject("Microsoft.XMLHTTP");

2.Ajax 属性:
   xhr = responseText;
3.Ajax 方法:
   xhr.open("get","index.php?id=100&name=user_1",true); //异步传输
   xhr.send();
4.Ajax 事件:
   xhr.onreadystatechange = function(){ }; 




posted @ 2019-12-07 15:22  梭梭666  阅读(83)  评论(0)    收藏  举报
返回顶部