JavaScript浅了解

JavaScript

作用:

  • 给页面添加动态效果

语言特点:

  • 属于脚本语言,不需要编译直接执行
  • 基于面向对象
  • 属于弱类型语言
    – 强类型:int x=10; String name=“张三”; int y;
    – 弱类型:var x=10; var name=“张三”;
  • 安全性高: js语言只能访问浏览器内部的数据不能访问浏览器以外的数据.
  • 交互性高: js语言可以直接嵌入到html页面中,可以让用户脱离后端服务器只在前端页面和页面
    内容进行交互.

JavaScript对象分类:

  • 内置对象: number/string/boolean等
  • 浏览器相关对象BOM: Browser Object Model 浏览器对象模型
  • 页面相关对象DOM: Document Object MOdel 文档对象模型

1.如何在html页面中引入JavaScript代码

  • 内联: 在标签的事件属性中添加js代码,当事件触发时执行
    事件: 就是系统提供的一些特定时间点, 点击事件:就是元素被点击时的时间点
  • 内部: 在html页面中的任意位置写script标签,在标签体内写js代码.
  • 外部: 在单独的js文件中写js代码,在html页面中通过script标签的src属性引入, 以后工作中用
    的最多,好处是可以多个页面复用同一个文件, 可以将html代码和js代码分离便于维护和升级.

2.JS和Java的对比(区别)

  1. JS与java是两个公司开发不同的两个产品,java是sun公司推出面向对象开发的程序设计语言,特别适合于Internet应用程序的开发。JS是Netscape公司的产品,是一种可以嵌入到web页面中国基于对象的解释性语言,它的前身是Live Script,JAVA的前身是Oak语言。
  2. 基于对象和面向对象,Java是一种真正面向对象开发的语言,即使开发简单的程序,也必须设计对象。JS是一种脚本语言,它是基于对象开发的语言,并且提供了很多内部对象。
  3. java必须经过编译,然后再执行;JS是一种解释性语言,源码不需要经过编译,由浏览器解释执行
  4. java采用强类型变量检查,所有变量在编译之前必须先声明;JS中变量声明,采用弱类型,变量在使用前不需要声明,而是解释器在运行时检查其数据类型。

2.1 Java的特点 :

面向对象的开发:继承、封装、多态 、(抽象)

2.2 JS的特点:

基于对象:有对象但不支持严格的继承、封装、多态

  • JS中没有继承的概念,但是它有原型的概念。
    每个对象都有一个prototype属性,用来指定该对象的原型对象,类似于继承。
    (原型对象是保存共享属性值和共享方法的对象,在js中原型可以是任意类型,)

  • 封装
    JS中有不严格的封装,对象中封装的属性和方法是可以任意访问、修改的。

  • 多态
    JS中的所有对象都是Object,即他们的根原型是Object。
    JS不像Java的多态那样严谨,JS中的对象可以赋值给任意类型的其他对象。

3.变量声明和赋值

  • java:
int x =10; String s = "abc"; x="xyz";(报错 类型不匹配)
Person p = new Person();
  • JavaScript:
var x=10; var s="abc"; x="xyz";可以执行 var p = new Person();

4.数据类型

  • 在JavaScript中只有对象类型
  • 常见的对象类型:
    数值:number 相当于java中所有数值类型的总和
    字符串:string 可以用单引号或双引号修饰
    布尔值:boolean true/false
    未定义:undefined 当变量只声明不赋值时,此变量的类型为未定义.
    自定义:object Person Car Hero
  • 数字+字符串:数字转换为字符串
    数字+布尔值:true:1,false:0
    字符串+布尔值:布尔值转换为true或false
    布尔值+布尔值:布尔值转换为1或者0

5.运算符

+ - * / % > < >= <= != = == ===
1.和java大体相同
************************************
*java中5/2结果是2,js中5/2结果是2.5*
************************************
2.=====, == 先统一等号两边变量的类型再比较值, ===先比较类型是否相等,相等后再比较值.
"666"==666 true "666"===666 false
3.typeof x 获取变量的类型 

“==”与“===”的区别 
==:只比较两者的内容,如果类型相同的话就返回true
===:先比较类型,类型相同再比较内容,内容相同就返回true

6.和页面相关的方法

  1. 通过标签id 获取标签对象
    var d = document.getElementById(“id”);
  2. 获取和修改元素的文本内容
    d.innerText = “xxx”; 修改元素的文本内容
    d.innerText 获取
  3. 获取和修改文本框的值
var i = document.getElementById("i1");
//获取文本框的值
//alert(i.value);
//修改文本框的值
i.value="按钮点击了";
  1. 修改元素的HTML内容
//修改
d1.innerHTML="<h1>abc</h1>";
//追加内容
d1.innerHTML+="<h2>xyz</h2>";

NaN: Not a Number 不是一个数

7.方法声明及调用

java: public 返回值类型 方法名(参数列表){方法体}
JS: function 方法名(参数列表){方法体}

  • 三种声明方法的方式:
    function 方法名(参数列表){方法体}
    var 方法名 = function(参数列表){方法体}
    var 方法名 = new Function(“参数a”,“参数b”,“方法体”);

8.BOM浏览器相关内容

  • window: 该对象里面的属性和方法称为全局属性和全局方法,访问时可以省略掉window.

    window.alert()     window.parseInt()    window.isNaN()
    
  • window对象中场景的方法
    window.isNaN() 判断变量是否是NaN
    window.parseInt()和window.parseFloat() 将字符串转成整数和转成浮点数
    window.alert() 弹出提示框
    window.confirm() 弹出确认框
    window.prompt() 弹出文本框
    window.setInterval(方法,时间间隔) 开启定时器
    window.clearInterval(timer) 停止定时器
    window.setTimeout(方法,时间间隔) 开启只执行一次的定时器

  • window中常见的属性
    – (1) location:位置

      - *location.href;*  获取和修改当前浏览器的地址
      - *location.reload();*  刷新页面
    

    – (2)history: 历史

      - *history.length;* 获取当前窗口的历史页面数量
      - *history.back();* 返回上一页面      等效左箭头
      - *history.forward();* 前往下一页面   等效右箭头 
      - *history.go(n);*   n正值代表前进  n负值代表后退  0代表刷新
      - 
    

    – (3)screen 屏幕

        - screnn.width/height  获取屏幕的分辨率
    

    – (4)navigator 导航帮助

      - navigator.userAgent;  获取浏览器的版本信息
    

9.事件

  • 什么是事件: 系统给提供的一些特定的时间点, 事件包括:鼠标事件/键盘事件/状态改变事件
  • 鼠标事件:
    • onclick 点击事件
    • onmouseover 鼠标移入事件
    • onmouseout 鼠标移出事件
    • onmousedown 鼠标按下事件
    • onmouseup 鼠标抬起事件
    • onmousemove 鼠标移动事件
  • 键盘事件:
    • onkeydown 键盘按下事件
    • onkeyup 键盘抬起事件
  • 状态改变事件
    • onload 页面加载完成事件
    • onchange 值改变事件
事件绑定
  • 如何给元素添加事件?

    1. 事件属性绑定
    		<input type="button" value="事件属性绑定"	
    		onclick="alert('触发!')">
    
    1. 动态绑定
    		btn.onclick = function(){
    			alert("动态绑定事件触发!");
    		}
    
    1. 事件取消
    ​    <!-- 在事件中执行return false可以终止事件 -->
    ​	<a href="http://www.baidu.com" 
    ​	onclick="return confirm('您确认离开此页面吗?')">百度</a>
    
    1. 事件传递(事件冒泡)

      当某一个位置有多个元素的事件需要触发,则事件响应的顺序是从最底层往上层传递,类似气泡从下往上所以称为事件冒泡.

10.DOM文档对象模型

  • 和页面相关的内容
  1. 通过id获取元素 document.getElementById(“id”)
  2. 获取和修改元素的文本内容 innerText
  3. 获取和修改元素的html内容 innerHTML
  4. 获取和修改文本框的值 i.value

11.jQuery框架

  • 作用: 和JavaScript一样给页面添加动态效果,其实就是对部分原生JavaScript语言的封装,可以让程序员写的更少但实现的更多.
  js:  var d = document.getElementById("id");

  jQuery:   $("#id")
  • 引入方式: 由于jQuery就是通过JavaScript语言所写,框架本身就是一个js文件,所以和引入普通的js文件一样通过script标签的src属性引入到HTML页面即可.

  • 通过id获取元素对象,此时获取到的是jQuery对象 和js对象不一样 $("#id")

js对象和jq对象互相转换
  • js对象和jq对象不是一种对象,各自的方法不能混着调用
  1. js转jq : var jq = $(js);
  2. jq转js: var js = jq[0]; jq对象实际上就是一个数组,里面装着js对象

jQuery的选择器

  1. 基础选择器 写法和css一样
      - $("div")    标签名选择器
      - $("#id")   id选择器
      - $(".class")     类选择器
      - $("div,#id,.class")  分组选择器
      - $("*")  任意元素选择器  
    
  2. 层级选择器
    - $("div span") 匹配div里面的所有span包括子孙后代
    - $("div>span") 匹配div里面的span子元素  
    - $("div+span") 匹配div的弟弟span  
    - $("div~span") 匹配div的弟弟们span
    
    – 层级相关的方法:
     1. $("#abc").next("span")  匹配id为abc元素的弟弟span元素
     2. $("#abc").nextAll()  匹配id为abc元素的弟弟们元素
     3. $("#abc").prev()  匹配id为abc元素的哥哥元素
     4. $("#abc").prevAll()  匹配id为abc元素的哥哥们元素
     5. $("#abc").siblings() 匹配id为abc元素的所有兄弟元素
     6. $("#abc").parent() 匹配id为abc元素的父元素
     7. $("#abc").children() 匹配id为abc元素的所有子元素们
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值