python第三十天(js)

在html中引入js代码

{#1 直接编写#}
    <script>
        alert('hello')    //alert弹出一个小的提示框
    </script>
{#2 导入文件#}
    <script src="hello.js"></script>  

数据类型

基本数据类型:

数字类型(Number):包括整型和浮点型
字符串(String)
Boolean
Null:空类型
Undefined:Undefined 类型只有一个值,即 undefined。当声明的变量未初始化时,该变量的默认值是 undefined。当函数无明确返回值时,返回的也是值 “undefined”;

引用数据类型:

object

数据类型转换:

JavaScript属于松散类型的程序语言
变量在声明的时候并不需要指定数据类型
变量只有在赋值的时候才会确定数据类型
表达式中包含不同类型数据则在计算过程中会强制进行类别转换

数字 + 字符串:数字转换为字符串
数字 + 布尔值:true转换为1,false转换为0
字符串 + 布尔值:布尔值转换为字符串true或false

函数parseInt: 强制转换成整数 例如parseInt(“6.12”)=6 ; parseInt(“12a")=12 ; parseInt(“a12")=NaN ;parseInt(“1a2")=1

函数parseFloat: 强制转换成浮点数 parseFloat(“6.12”)=6.12

函数eval: 将字符串强制转换为表达式并返回结果 eval(“1+1”)=2 ; eval(“1<2”)=true

函数typeof :查询数值当前类型(string / number / boolean / object )

等性预算符

执行类型转换的规则如下:
如果一个运算数是 Boolean 值,在检查相等性之前,把它转换成数字值。false 转换成 0,true 为 1。
如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。
如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串。
如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。
在比较时,该运算符还遵守下列规则:

值 null 和 undefined 相等。
在检查相等性时,不能把 null 和 undefined 转换成其他值。
如果某个运算数是 NaN,等号将返回 false,非等号将返回 true。
如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一对象,那么等号返回 true,否则两个运算数不等。
在这里插入图片描述

异常处理

try {
    //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
}
catch (e) {
    // 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。
    //e是一个局部变量,用来指向Error对象或者其他抛出的对象
}
finally {
     //无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。
}

注:主动抛出异常 throw Error(‘xxxx’)

数组对象

数组排序默认是按照最高位排的

<script>
    console.log([123,2,12,1].sort().toString()) //console.log是在控制台输出
    //结果为1,12,1233,2

</script>

修改为按照大小排,需要自定义一个函数

<script>
    function f(a,b) {
        if (a>b){
            return 1
        }else if(a<b){
            return  -1
        }else {
            return 0
        }
    }
    console.log([123,2,12,1].sort(f).toString())

</script>

其他方法和python列表类似。

函数对象

arguments是函数实际接收到的参数(实参)的整合数组

function add(a,b){

        console.log(a+b);//3
        console.log(arguments.length);//2
        console.log(arguments);//[1,2]

    }
    add(1,2)

    ------------------arguments的用处1 ------------------
    function nxAdd(){
        var result=0;
        for (var num in arguments){
            result+=arguments[num]
        }
        alert(result)

    }

    nxAdd(1,2,3,4,5)

//     ------------------arguments的用处2 ------------------

    function f(a,b,c){
        if (arguments.length!=3){
            throw new Error("function f called with "+arguments.length+" arguments,but it just need 3 arguments")
        }
        else {
            alert("success!")
        }
    }

    f(1,2,3,4,5)

Function 对象的 length 属性

如前所述,函数属于引用类型,所以它们也有属性和方法。

比如,函数对象的length属性是期望参数个数(形参个数)

BOM对象

BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作。使用 BOM,开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。

使 JavaScript 有能力与浏览器“对话”。

window对象

window对象:
所有浏览器都支持 window 对象。
概念上讲.一个html文档对应一个window对象.
功能上讲: 控制浏览器窗口的.
使用上讲: window对象不需要创建对象,直接使用即可.

window的方法:

alert() 显示带有一段消息和一个确认按钮的警告框。无返回值
confirm() 显示带有一段消息以及确认按钮和取消按钮的对话框。点击确认按钮返回true,点击取消按钮返回false。
prompt() 显示可提示用户输入的对话框。返回用户输入的内容,没有输入返回null

pen() 打开一个新的浏览器窗口或查找一个已命名的窗口。
close() 关闭浏览器窗口。
setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。 两个参数,一个是函数,一个是时间
clearInterval() 取消由 setInterval() 设置的 timeout。
setTimeout() 在指定的毫秒数后调用函数或计算表达式。
clearTimeout() 取消由 setTimeout() 方法设置的 timeout。
scrollTo() 把内容滚动到指定的坐标。

DOM对象

DOM 是 W3C(万维网联盟)的标准。DOM 定义了访问 HTML 和 XML 文档的标准:

“W3C 文档对象模型(DOM)是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。”

W3C DOM 标准被分为 3 个不同的部分:

核心 DOM - 针对任何结构化文档的标准模型
XML DOM - 针对 XML 文档的标准模型
HTML DOM - 针对 HTML 文档的标准模型

什么是 XML DOM? ---->XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法。
什么是 HTML DOM?---->HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。

1、dom节点

根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点(NODE):

整个文档是一个文档节点(document对象)
每个 HTML 元素是元素节点(element 对象)
HTML 元素内的文本是文本节点(text对象)
每个 HTML 属性是属性节点(attribute对象)
注释是注释节点(comment对象)

节点(自身)属性:
attributes - 节点(元素)的属性节点
nodeType – 节点类型
nodeValue – 节点值 ,重要!!!!!!
nodeName – 节点名称
innerHTML - 节点(元素)的文本值,重要!!!!!

推荐使用的导航属性:
parentElement - 父节点标签元素
children - 所有子标签 ,类似于数组的集合
firstElementChild - 第一个子标签元
lastElementChild - 最后一个子标签元素
nextElementtSibling - 下一个兄弟标签元素
previousElementSibling - 上一个兄弟标签元素

访问 HTML 元素(节点),访问 HTML 元素等同于访问节点,我们能够以不同的方式来访问 HTML 元素:

页面查找:
通过使用 Document.getElementById() 方法
通过使用 Document.getElementsByTagName() 方法
通过使用 Document.getElementsByClassName() 方法
通过使用 Document.getElementsByName() 方法

2、事件

请查看HTML 事件属性
事件绑定的两种方法:

<div onclick="alert(123)">点我呀</div>
<p id="abc">试一试!</p>

<script>
    var ele=document.getElementById("abc");


    ele.onclick=function(){
        alert("hi");  //推荐使用这一种
    };    

</script>









<div id="abc" onclick="func1(this)">事件绑定方式1</div> //this是当前的标签对象
<div id="id123">事件绑定方式2</div>
<script>
    function func1(self){       //形参名除了this,什么都可以
        console.log(self.id)
    }

    //这种方式this参数和形参必须填写;

//------------------------------------------
    var ele=document.getElementById("id123").onclick=function(){
         console.log(this.id);    //this是当前的标签对象
        // 这种方式不需要形参;
    }
    
</script>

事件传播

<div id="abc_1" style="border:1px solid red;width:300px;height:300px;">

		<div id="abc_2" style="border:1px solid red;width:200px;height:200px;"></div>

</div>
    <script type="text/javascript">
    document.getElementById("abc_1").onclick=function(){
        alert('111');
    }
    document.getElementById("abc_2").onclick=function(event){   //event是一个Event对象,Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
        alert('222');
        event.stopPropagation(); //阻止事件向外层div传播.  如果不加点击内层的div会触发两个事件
    }
    
</script>

元素的增删改查

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

<body>

    <button onclick="add()">add</button>
    <button onclick="remove()">remove</button>
    <button id="button_change">change</button>
    <div>div</div>

</body>
<script>

    function add() {
        var p1=document.getElementsByTagName("div")[0];
        var    ele=document.createElement("p");
        ele.innerHTML='pppppp';
        p1.appendChild(ele)  增,先找到父元素
    }

    function remove() {
        var father=document.getElementsByTagName('div')[0];
        father.removeChild(father.firstElementChild);删,先找到父元素

    }
    document.getElementById('button_change').onclick=function () {
        var father=document.getElementsByTagName('div')[0];
        var firstSon=father.firstElementChild;
        var ele=document.createElement('h1');
        ele.innerHTML='hhhhhhhhh';
        father.replaceChild(ele,firstSon);改,先找到父元素
    }

</script>
</html>

修改css样式
<p id="p2">Hello world!</p>
document.getElementById("p2").style.color="blue"
关于class的操作

elementNode.className
elementNode.classList.add
elementNode.classList.remove

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值