Javascript知识

本文详细介绍了JavaScript的核心组成部分、特点、语法、数据类型、运算符、函数、面向对象、内置对象、数组操作以及DOM文档对象模型的使用。还探讨了事件处理,包括事件驱动编程和各种事件属性。此外,文章还涵盖了JavaScript在HTML页面中的应用,如脚本嵌入、外部引用以及变量声明和赋值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaScript

JavaScript简称JS,是解释型或即时编译型的变成语言。

JavaScript组成部分

  1. ECMAScript(核心)
  2. DOM(文档对象模型)
  3. BOM(浏览器对象模型)

JavaScript特点

  1. 是一种解释性脚本语言
  2. 主要用于HTML页面添加交互行为
  3. 可以直接嵌套HTML,可以写成单独的js文件有利于结构和行为分离

JavaScript编写的位置

别写在html的script标签中

<!DOCTYPE html>
<html>
    <head>
        <script>
			alert('hello world');
        </script>
    </head>
    <body>
    </body>
</html>

编写在JS文件中

alert("hello world");

引用js文件

<script type="text/javascript" src="JS文件的路径"></script>

注:此处的script标签不能使用"/"结束,否则js代码无效

基本语法

  1. JavaScript与Java的标识符一致

  2. JavaScript严格区分大小写

  3. JavaScript程序代码格式";"结束

  4. JavaScript的注释与Java一致

    //
    /**/
    /***/
    
  5. JavaScript关键字保留字与Java基本相似

变量声明

使用var关键字var username;初始化,默认值undefined

声明变量时顺便赋值var username=“值”;

单独设置变量username=18;

打印变量

  1. alert(值),弹出框
  2. console.log(值),在console中现实

常见类型

  1. Number(数字类型)
  2. Boolean(布尔类型)
  3. String(字符串)
  4. 其他变量(null,undefined)
  5. typeof运算符(获取变量的数据类型)

运算符

比较运算符

运算符作用
=赋值
==比较可以类型不一样
===比较类型一定要一样

逻辑运算符

逻辑运算符中0、""、false、NaN、undefined、null表示false,其他类型的数据表示为true。

&&和||运算区别

&&操作:从左往右依次判断,返回第一个为false的值,否则返回最后一个值

||操作:从左往右依次判断,返回第一个为true的值,否则返回最后一个值

函数的定义

普通函数

function 函数名(参数列表){
    //程序代码
    [return;]
}

匿名函数

var  = function(参数列表){
    return 返回值;
}

如果方法没有返回值,则变量值为undefined

面向对象

JavaScript提供了一个构造函数(Custructor)模式。所谓的"构造函数"就是一个普通函数,但是内部使用this变量。

//构造函数
function Person(name,age){
    this.name = name;
    this.age = age;
    thia.fun=function(){
        console.log("执行了fun方法");
    }
}
//使用new关键字创建对象
var p1 = new Person("张三",20);
var p2 = new Person("李四",18);

注:

  1. 此时Person称为构造函数也称为类,构造函数就是类
  2. 面向对象就是需要new出来的对象
  3. 构造函数首字母要大写,遵循驼峰

内置对象

Object父类,所有对象都有的属性

属性作用
constructor创建对象的函数引用
prototype对该对象的原型引用

Object父类,所以头对象都有的方法

方法作用
hasOwnProperty(property)判断对象是否又某个特定属性
isPrototypeOf(object)判断对象是否是另外一个对象的原型
propertyIsEnumerable()判断给定的属性是否可以使用for…in语句进行枚举
toString()返回对象的原始字符串表示。

常用对象

Date

方法作用
Date()返回当前的日期和时间
getFullYear()获取Date对象中四位数字的年份
getMonth()获取Date对象中的月份(0~11)
getDate()获取Date对象中的天(1~31)
getHours()获取Date对象中的小时
getMinutes()获取Date对象中的分钟
getSeconds()获取Date对象中的秒

String

在String对象中有一个属性length该属性可以获取字符串的个数

方法作用
charAt(index)返回指定位置的字符
concat(string1,string2…)拼接字符串
fromCharCode(num)将number类型的数字转换成unicode中的一个字符
subString(start,stop)截取字符串内容
toUpperCase()把字符串转换成大写
toLowerCase()把字符串转换成小写
indexOf(cha)查找字符
split(cha)分割字符串

Math

方法作用
ceil()向上取整
floor()向下取整
round()四舍五入
random()随机数

historyd

在historyd对象中length属性的作用是返回浏览器历史列表的url数量

方法作用
back()加载history列表中的前一个url
forward()加载history列表中的下一个url
go()加载history列表中的某个具体的页面

localtion

属性

属性作用
hash返回从#开始的锚
host返回url的主机名和端口号
hostname返回url的主机名
href返回完整的url
pathname返回url的端口号
protocol返回url的协议
search返回?开始的url查询部分

方法

方法作用
assign()加载新的文档
reload()重新加载当前文档
replace()用新的文档代替当前文档

navigator

属性

属性作用
appCodeName浏览器代码名
appName浏览器的名字
appVersion浏览器的版本
platform浏览器的操作平台
userAgent返回发送到服务器user agent的头部值

screen

属性

属性作用
width返回屏幕分辨率的宽
height返回屏幕分辨率的高
availWidth返回访问者屏幕的宽度
availHeight返回访问者屏幕的高度

数组

创建数组的方式

  1. var arr1 = new Array();
  2. var arr2 = new Array(“张三”,“李四”,“王五”);
  3. var arr3 = new Array(3);
  4. var arr4 = [“张三”,“李四”,“王五”]

第一种是创建一个数组对象

第二个是创建一个数组对象并赋值

第三个是创建指定长度的数组对象

第四种是常用操作种最常见的一种,创建并赋值

注:对于JavaScript种的数组不会出现数组越界异常,也不是定长的

属性

在数组中length可以获取素组的长度

方法

方法作用
concat(array1,array2…)连接两个或多个数组
join(separator)将数组的所有元素放入一个字符传中,参数是你的分隔符号
reverse()将数组颠倒顺序
slice(start,end)返回选定的数组
pop()删除最后一个元素
shift()删除第一个元素
push(newelement1,newelement2…)在数组末尾添加一个或多个元素,并且返回新得长度
unshift(newelement1,newelement2…)在数组开头添加一个或多个元素,并且返回新得长度
splice(index,howmany,element1…)用于插入、删除、替换数组元素

遍历数组

  1. for

    var arr = ['a','b','c','d'];
    for(var i = 0 ; i < arr.length ; i++){
        console.log(arr[i]);
    }
    
  2. forEach

    var arr = ['a','b','c','d'];
    arr.forEach(function(item,index,array){
        console.log(item)
    })
    

    第一个参数是数组得元素

    第二个参数是数组得引用

    第三个参数是数组本生

  3. map

    var arr = ['a','b','c','d'];
    var newArr = arr.map(function(item,index,array){
       return item+index; 
    });
    

    第一个参数是数组得元素

    第二个参数是数组得引用

    第三个参数是数组本生

    此处返回得是一个新得数组,新数组的元素是map中的return值

  4. for-in

    可以遍历数组,也可以遍历对象

    var arr = ['a','b','c','d'];
    for(var i in arr){
        console.log(i);//索引
        console.log(arr[i]);//元素
    }
    //遍历object对象中的属性
    var obj = new Object();
    for(var name in obj){
        console.log(name);//属性名
        console.log(obj[name]);//属性值
    }
    

DOM

DOM是Document Object Model文档对象模型的缩写。DOM可以动态的修改xml和html。

获取元素

  1. 通过元素的Id进行获取(getElementById),返回第一个元素,如果不存在返回null。
  2. 通过标签名字进行获取(getElementsByTagName),返回所有标签名字相同的元素集合,如果没有匹配的返回空集。
  3. 通过class名字进行获取(getElementsByClassName),返回所有class名称相同的元素集合,如果没有匹配的返回空集
  4. 通过name名称进行获取(getElemenetsByName),返回所有name名称相同的元素集合,如果没有匹配的返回空集

元素属性操作

获取属性值方式

  1. 元素.属性
  2. 元素[“属性”]
  3. 元素.getAttribute(“属性名”)

设置属性值方式

  1. 元素.属性=值
  2. 元素[“属性”]=值
  3. 元素.setAttribute(“属性名”,“属性值”)

注:获取与设置1和2不能设置自定义属性,只能设置普通属性,如果需要设置与获取自定义的属性请使用setAttribute和getAttribute

Node

属性

属性作用
firstChild返回子节点中第一个的节点
lastChild返回子节点的最后一个节点
childNodes获取所有节点的列表
previousSibling获取上一个同级节点,没有返回null
nextSibling获取下一个同级节点,没有返回null
parentNode获得父节点

方法

方法作用
hasChildNodes()是否拥有子节点
appendChild(node)添加一个新的节点在子节点的末尾
removeChild(node)从节点中删除节点
replaceChild(newNode,oldNode)替换子节点
insertBefore(newNode,refNode)在子节点之前添加一个子节点

事件处理

事件驱动编程

通俗:怎么触碰按钮,触碰按钮后会处理什么事情。

鼠标事件

属性作用
onclick单击事件
ondblclick双击事件
onmousedown按钮按住事件
onmouseleave鼠标移除事件
onmousemove鼠标移动事件
onmoseover鼠标移动元素事件
onmouseout鼠标移开元素事件
onmouseup鼠标松开事件

键盘事件

属性作用
onkeydown键盘按下事件
onkeypress键盘按下并松开事件
onkeyup键盘松开事件

表单事件

属性作用
onblur元素失去焦点触发
onchange元素内容发生改变触发
onfocus元素获取焦点触发
onsubmit表单提交触发

事件绑定

  1. 在元素上直接绑定

    <input type="button" value="点我啊" onclick="alert('点位干嘛');"/>
    
  2. 通过元素绑定事件(常见用法)

    <input type="button" value="点我啊" id="btn"/>
    
    var btn = document.getElementById("btn");
    btn.onclick=function(){
        alert("点位干嘛");
    }
    

    使用此种方式可以将html代码和js代码完全分离,比较适合开发与管理

  3. 通过元素对象的方法绑定事件

    IE:attachEvenet

    非IE和IE9以上:addEvenetListener

    window.onload=function(){
        var btn = document.getElementById("btn");
        btn.addEvenetListener("click",function(){
            alert("点我干嘛");
        })
    	btn.addEvenetListener("click",function(){
            alert("不要点了");
        })
    }
    

    此种方式可以设置点击后触发多个事件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值