【前端基础】javascript笔记

2023-06-20 13:13:00 浏览数 (1)

PART 1 JavaScript基础

chapter 1 了解概念

1 简介

JS是一种客户端编程脚本语言,能被浏览器解释,实现网页内容的一些动态功能。

2 DOM(文档对象模型)

The Document Object Model is a platform- and language-neutral interface that will allow programs and scripts to dynamically access and update the content, structure and style of documents.

浏览器在加载显示一个网页时,会对页面html代码解析,并在内存中创建一个描述该页面的模型(树形结构)。

JS或其他语言可以操作这个模型的元素(属性)

2.1 window对象

window对象是DOM树结构的根。

window对象包括一些子对象:document location history navigator

代码语言:javascript复制
      #调用:   window.document
               window.document.body

Chapter 2 基本语法

1 编写位置

可以在html代码中直接编写js语句,也可单独将js代码写入文件中并在html中调用。

代码语言:javascript复制
   <script>
      // javascript语句
   </script>
   //通常在html head标签中定义javascript

2 语句

javascript每个逻辑行用分号结尾

代码语言:javascript复制
    // 单行注释

    /*
       多行注释
    */

3 变量

代码语言:javascript复制
   var a = 133;  //也可省略关键字var
   str = "hello hehe"

4 操作符

代码语言:javascript复制
       - * / %    -- 
     eg . var firname = "fank"
          var secname = "hu"
          var name=firname  " " secname

5 鼠标事件

代码语言:javascript复制
     onclick : 户点击时执行的js语句
          <input type="button" id="b1" value="click me" onclick="alert('hey guy')" />
     onmouseover 鼠标移入
     onmouseout  鼠标移出

6 函数

代码语言:javascript复制
    <script>
      function sayHi(name){
        alert(name ",keep calm and caryy on");
        return name;
      }
    </script>
   <input type="button" id="b3" value="button3" onclick="sayHi('fankhu')"/>

7 条件语句

代码语言:javascript复制
     # if .. else if .. else
      v=input
     if (v > 3) {
        //something
     }else{
        //something else
     }

     # 三目 (a>b) ? a : b
     # switch
       switch(){
         case "a": v="hi";break;
         case "b": v="no";break;
         default:
            alert("error");
       }
     #比较操作符
          == 值等于
          === 值和类型都等于
          >,<,>=,<=,!=
     # 逻辑操作符 || &&

8 循环

代码语言:javascript复制
      for(i=0;i<10;i  ){ } 
      for(i in arr){ }
      while( ){ }
      do{ }while()

9 面向对象

代码语言:javascript复制
    # 创建一个空对象
      obj1= new Object();

    # 对象定义方法:创建一个构造函数(有点像其他oop的类定义)
       
       function myobject (name) {
         var privateA=111;             //外部不可见
         this.name=name;
          this.info= "I'm a object";  // this关键字,表示对象本身,只有this指向的属性才能被外部看见
          this.showInfo=function(){   // 用匿名函数定义对象的方法
            alert(this.info);
           }
       }

# 扩展和继承: prototype

代码语言:javascript复制
      扩展 : myobject.prototype.sayHi=function(){....}
      
      继承 ;对象Dog要继续对象Pet 
             Dog.prototype = new Pet();

Chapter 3 进阶

10 JSON简介

代码语言:javascript复制
     # json 是javascript对象的一种简单紧凑的标签。能被js和浏览器直接解析。
     # 语法 
        var user1='{"username":"toby","location":"JP"}';
        var user2='({"username":"toby","location":"JP"})';

# js解析 eval()

代码语言:javascript复制
        var ob1=eval('(' user1 ')');
        var ob2=eval(user2);

# 浏览器解析

代码语言:javascript复制
        var ob3=JSON.parse(user1);
代码语言:javascript复制
  # JSON数据序列化 --将js对象转化为JSON序列
        JSON.stringify()     

PART 2 Jquery基础

一 概念

1.1 jQuery 是一个javascript类库,通过jquery可以选取HTML元素,并对它们执行操作。

1.2 语法实例

代码语言:javascript复制

  $(this).hide()   隐藏当前HTML元素
 
  $("#test").hide()  隐藏 id="test"的函数
 
  $("p").hide()     隐藏 所有<p>标签

  $(".test").hide()  隐藏所有class="test"的标签

1.3 语法规则

代码语言:javascript复制
    $(selector).action()

    选择器 事件

1.4 文档就绪函数

代码语言:javascript复制
    $(document).readY(function(){

    });

    为了防止在文档加载完成前就运行jqury代码

1.5 jquery 选择器

代码语言:javascript复制
    1.5.1 元素选择器
    $("p")

    $("p.intro")  选取所有class=intro的<p>元素

    $("p#demo")   选取所有id=demo的<p>元素

1.5.2 属性选择器

代码语言:javascript复制
    $("[href]") 选择所有带href属性的元素

    $("[href='#']") 选取所有带有href值等于#的元素

    $("[href!='#']")

    $("[href='.jpg']")
    
    $("input[name='group_status']:checked").val()  #选择 radio值    

1.5.3 css选择器

代码语言:javascript复制
    $("p").css("background-color","red");

1.6 jquery事件

代码语言:javascript复制
    $(document).ready(function) #文档就绪事件

    $(selector).click(function) #单击事件

    $(selecto).dblclick(function) #双击

    $(selector).mouseover(function)

二 jquery效果

代码语言:javascript复制
    #隐藏
    $("p").hide(); 
    #显示
    $("p").show(); 

回调函数:

代码语言:javascript复制
     $(selector).hide(speed,callbackfunc)
    $("p").hide(1000,function(){
    alert("The paragraph is now hide");
    })

三 jQuery HTML

代码语言:javascript复制
   #获取DOM内容

   text()  设置或返回元素文本内容
   html()  设置或返回元素的HTML内容
   val()   设置或返回表单字段的值
   attr()  获取属性
   其中以上函数也可拥有回调函数

代码语言:javascript复制
   #设置内容
   test("new content");
   html("<p>Hello fank</p>");
   val("sth");

代码语言:javascript复制
   $("#w3s").attr("href","http://www.w3school.com.cn/jquery");

代码语言:javascript复制
   #添加元素

   append() 在被选元素结尾插入内容
   prepend() 在被选元素开头插入内容
   after()   在被选元素之后插入内容
   before()  在被选元素之前插入内容
代码语言:javascript复制
  # $("#btn4").click(function(){
          $("#test2").append("<p>hi</p>");
     })
     });

#删除元素

代码语言:javascript复制
     remove()  删除元素及其子元素
     empty()   从被选元素中删除子元素

#css方法

代码语言:javascript复制
    css()

    $("p").css("backgroud-color":"yellow");

四 jQuery 遍历

遍历就是根源其相对于其他元素的关系来获取HTML元素

代码语言:javascript复制
    # jQuery 祖先

      parent()    返回元素的直接父元素
      parents()   返回所有父元素
      parentsUntil("div") 返回直到div的父元素

# jQuery 后代

代码语言:javascript复制
       children()   返回所有直接子元素
       find("*")    返回所有后代
       find("span") 返回span标签的后代
     
       var open_buttion= $(obj).parent().prev().children();

# jQuery 同胞 (水平遍历)

代码语言:javascript复制

       siblings() 返回所有同胞元素
       next()     返回下一个同胞元素
       nextAll()  返回后面所有同胞元素
       nextUntil()
       prev(),prevAll(),prevUntil()

# jQuery 过滤

代码语言:javascript复制
       first()
       last()
       eq()  返回索引 eq(1)
       filter() 选取符合条件的元素
          filter(".intro") 返回带有类名intro的元素
       not() 与filter相反

五 jQuery Ajax

5.1概念

代码语言:javascript复制
      Ajax= Asynchronous Javascript And Xml
      不重载整个页面,Ajax通过后台加载数据并在页面显示指定内容。
      Ajax 支持使用http GET 和POST方法从服务器请求数据

5.2 方法

load() 从服务器加载数据,并把返回的数据放入页面被选元素中

$(selctor).load(URL,data,callback);

# URL 必选,指定需要加载的URL

# 可选,与请求一同发送的查询字符串键值对

# 可选,load()方法完成后执行的函数

$.get(URL,callback);

$.post(URL,data,callback)

#补充 GET vs POST

代码语言:javascript复制
           GET - 从指定资源请求数据
           POST 向指定资源提交要被处理的数据
        GET:
            GET请求可能会被缓存
            GET请求保留在浏览器的历史记录中
            GET请求可被收藏为书签
            GET请求不应在处理敏感数据时使用
            GET请求有长度限制 2048
            GET请求应该只用于取回数据
        POST:
            POST请求不会被缓存
            POST请求不会保留在历史记录中
            不能被收藏为书签
            无长度要求

六 示例

代码语言:javascript复制

    1 获取指定列,修改样式
    $("#yl_monitor_table tbody tr").each(function(){online=$(this).find('td:eq(4)');online_val=online.text();if(online_val>0){online.css({color:'red',fontWeight:'bold'})}else(online.css({color:'green',fontWeight:'bold'}))})    

0 人点赞