JavaScript学习笔记

JavaScript笔记

在这里插入图片描述

一、简介

js全称为JavaScript,是一种解释性脚本语言,边解释边执行

javaScript组成:

ECMAScript语法

DOM文档对象模型(Document Object Model)

BOM浏览器对象模型(Browser Object Model)

二、JS用法

1.内部js语法:

在head标签中写,

在body底部写

注:尽量让js代码写在body底部,因为代码从上往下执行,如果js代码写在head里,有可能页面还没有加载标签,js代码就已经利用了标签,这个时候会报null

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TgqMoOyy-1623142960927)(file:///C:\Users\DELL\AppData\Local\Temp\ksohtml6536\wps1.jpg)]

2.引入外部js文件

在head标签中写

在body底部写

三、数据类型

1.声明变量方式: var 变量名 = 值; 注:js会通过值来判定当前变量是什么数据类型

例: let a = 1; var b = “哈哈”; var c = true; var d; var e = null;

2.数字类型:Number、 字符串类型 boolean undefined(未定义的) null

注:js输出语句:document.write(“在页面输出的内容”);

例: var name = “天花板”;

document.write(name);

3.内置函数:

(1)检测当前变量的数据类型: typeof() ----> var a = 1; document.write(typeof(a));

(2)将变量转换成数字类型: parseInt(); ---->var a = “1”; var b = parseInt(a);

(3)判断变量非数字,如果是数字false,不是数字true: isNaN();

例:var a = “12a”; document.write(isNaN(a)); ---->true

4.引用类型:

(1)数组类型: 四种声明方式:

var a = [1,2]; 取值:document.write(a[0]);

var b = new Array(); 赋值:b[0] = 1; 取值同上

var c = new Array(3); 赋值取值同上,声明数组同时声明数组长度

注: c[4] = 1; 那么此时,数组c的长度会自动扩容

var d = new Array(1,2,3); 取值同上,声明数组同时给数组赋值

(2)对象类型:三种声明方式

var user = {name:”天花板”,age:21}; 取值:document.write(user.name);

var user = new Object(); 赋值:user.name = “总班长”; 取值:document.write(user.name);

var userArray = [{name:”王晓旭”},{name:”郝老师”}]; 数组类型对象,每一个{}代表一个对象

取值: document.write(userArray[0].name );

(3)JSON类型: 键值对形式存储数据

声明JSON对象:var obj = {“name”:”黄月”,”age”:19};

声明JSON数组对象:var objArray = [{“name”:”黄月”,”age”:19},{“name”:”黄月”,”age”:19}];

注: js对象转换成json对象: var jsonObj = JSON.stringify(js对象名);

json对象转换成js对象: var jsObj = JSON.parse(json对象名);

四、运算符:

1.算数运算符: + - * / %

2.逻辑运算符: && || !

3.比较运算符: > < >= <= == !=

===(不仅判断值是否相对,也要判断数据类型是否相等)

4.自增自减: ++ –

5.双目运算符: += -= *= /= %=

五、条件分支语句、循环语句

if(条件表达式){}else{}

switch(表达式){ case 值: break;}

while(条件表达式){}

do{}while(条件表达式)

for(var i = 0;i<num;i++){}

循环四要素: 初始变量、条件表达式、循环体、步长:防止死循环

六、函数(方法)

1.js声明方法:

(1)无参无返回值方法: function 方法名(){}

(2)有参无返回值方法: function 方法名(参数){}

(3)无参有返回值方法: function 方法名(){ return 值; }

(4)有参有返回值方法: function 方法名(参数){ return 值; }

注:形参、实参的区分,return将参数返回到方法的调用处

七、事件

1.点击事件用法:

点击触发add方法

function add(){

document.write(“因为点击了button按钮,所以出发了add方法”);

}

注: a标签的事件特殊用法:

点击

function show(){

document.write(“点击a标签触发此方法”); }

2.其他事件:

(1)onchange: 表单内容改变事件

(2)onclick: 鼠标左击事件

(3)onmouseover: 鼠标滑过事件

(4)onmousemove: 鼠标滑过事件

(5)onmouseout: 鼠标离开事件

(6)onkeyup: 键盘弹起事件

(7)onkeydown: 键盘按下事件

(8)onblur:失去焦点事件

(9)onfocus:获取焦点事件

(10)onload: 预加载事件

onload用法: window.onload = function(){} 只要打开页面,就执行此事件

3.事件传参为:this

当给事件绑定的方法中传入参数this,此时this代表当前标签

例:

  • 八、js弹框:

    1.警告弹框: alert(“内容”);

    2.确认弹框: var flag = confirm(“郝老师美不美?”);
    当点击确定flag为true,点击取消flag为false

    3.文本弹框: var content = prompt(“问题”,”默认内容”);

    点击确定返回输入内容,点击取消返回null

    九、js操作DOM元素

    1.js获取dom元素

    (1)根据id获取:

    哈哈

    var doc = document.getElementById(“hid”);

    (2)根据class获取:

    哈哈

    var doc = document.getElementsByClassName(“hclass”);

    注:此时获取的doc是一个数组,因为页面中可能有多个名叫h1的class

    (3)根据标签名获取:

    哈哈

    var doc = document.getElementsByTagName(“h1”);

    注:此时获取的doc是一个数组,因为页面中可能有多个h1标签

    2.js操作DOM的样式、内容、属性

    var doc = document.getElementById(“name”);

    (1)js获取标签内容: doc.innerHTML;

    (2)js获取表单内容: doc.value;

    (3)js向标签内写入内容: doc.innerHTML = “新内容”;

    (4)js获取元素样式: doc.stlye.css属性名;

    注:这个元素的样式必须是行内样式, js在获取带有-的样式时,去掉-下一个单词首字母大写

    例如: css样式: font-size:10px;

    doc.style.fontSize;

    (5)js添加元素样式: doc.style = “color:red;font-size:10px;”;

    (6)js获取元素属性: doc.name;

    注: js在获取class的时候, doc.className;

    (7)js添加元素属性: doc.src= “index.html”;

    3.*js操作节点,不讲(考试不考)*

    我是原有标签

    获取页面标签: var div = document.getElementsByTagName(“div”)[0];

    (1)创建元素: var p = document.createElement(“标签名称”);

    (2)向创建的元素中添加内容:

    创建一段文本: var content = document.createTextNode(“文字”);

    将文本添加到标签内: p.appendChild(content);

    将创建的元素添加到页面中: div.appepndChild();

    (3)删除元素: div.removeChild§;

    (4)替换元素:

    var span = doucment…getElementsByTagName(“span”)[0];//获取页面要替换的元素

    //创建一个新的元素

    var li = document.createElement(“li”);

    var liCon = document.createTextNode(“我是li标签内容”);

    li.appendChild(liCon);

    div.replaceChild(li,span);//将div中的span替换成了li

    (5)插入元素:

    var span = doucment…getElementsByTagName(“span”)[0];//获取一个元素

    //创建一个新的元素

    var li = document.createElement(“li”);

    var liCon = document.createTextNode(“我是li标签内容”);

    li.appendChild(liCon);

    div.insertBefore(li,span); //将li标签插入到span标签前面

    十、时间与Math对象用法:

    1.Math用法:

    (1)随机数用法: Math.random(); 产生0~1之间的随机数

    (2)向上舍入: Math.ceil(10.1); ---->11

    (3)向下舍入: Math.floor(10.1); ----->10

    (4)四舍五入: Math.round(9.5); ---->10

    (5)最大值、最小值: Math.max(4,3);–>4 Math.min(4,3);–>3

    (6)次幂: Math.pow(2,3); ---->8

    2.Date用法:

    (1)获取系统时间:var date = new Date(); //创建时间对象

    (2)获取年:var year = date.getFullYear();

    (3)获取月: var month = date.getMonth()+1; 月份的取值范围是:0~11

    (4)获取日: var day = date.getDate();

    (5)获取时: var hours = date.getHours();

    (6)获取分: var minu = date.getMinutes();

    (7)获取秒: var sec = date.getSeconds();

    (8)获取星期: var week = date.getDay(); 星期的取值范围:0~6

    十一、计时器

    function show(){

    alert(“我是计时器和延时器要执行的方法”);

    }

    1.计时器用法: var inter = setInterval(“show()”,1000);//每1000毫秒调用一次show方法

    2.停止计时器: clearInterval(inter);//清除名为inter的计时器

    3.延时器用法: var timeout = setTimeout(“show()”,5000);//经过5000后再执行show方法

    4.停止延时器: clearTimeout(timeout);

    十二、BOM元素

    1.window: 浏览器窗口

    (1)获取屏幕宽高: screen.availWidth;//宽度 screen.availHeight;//高度

    (2)获取浏览器可用宽高:

    宽度:window.innerWidth||document.documentElement.clientWidth|| document.body.clientWidth;

    高度:window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;

    2.history:

    (1)让浏览器后退方法: history.back();

    (2)让浏览器前进方法: history.forward();

    3.location

    (1)跳转页面: window.location.href = “新页面地址”;

    (2)刷新页面:window.location.reload();

    (3)获取域名:window.location.hostname; localhost表示本机地址---->127.0.0.1

    (4)获取端口:window.location.port; 8080、3306

    (5)获取页面路径:window.location.pathname;

    (6)获取协议:window.location.protocol; http://或https://

为减少 js 关键词的占用,此文件只占用“c$”一个关键词; * 使用时用: c$.函数名(参数列表); 或者 c$().函数名(参数列表) * 字符串操作函数、日期操作函数、数组操作函数等,直接增加到 String、Date、Array 类里面,便于直接使用 */ /** * 获取元素,或者在DOM加载完成时执行某函数 * @param arg 此参数为字符串时,认为是 c$.getElement 的缩写,用来获取元素。用法参考 c$.getElement * 如果 arg 是 function 则认为是 c$.ready 的缩写,在dom加载完成时执行。没有此参数则返回 c$ 对象。 * @param dom 需要选择的DOM对象,默认是 window.document * @return 没有arg参数时返回 c$ 对象,arg参数是字符串时返回查询的元素,arg参数是函数时没有返回内容。 * * @example * c$("mytext") // 返回 id 或者 name 为"mytext"的元素 * c$("#mytext") // 返回 id 为"mytext"的元素 * c$("@mytext") // 返回 name 为"mytext"的所有元素 * c$(".class1") // 返回 class 为"class1"的所有元素 * c$("$div") // 返回 标签 为"div"的所有元素 * c$("$div #text1") // 返回 div 标签里面 id 为"text1"的元素(支持多级查询,以空格分隔) * c$(function(){alert('执行DOM加载完成事件');}); // 为 c$.ready(fun) 的缩写 * * c$.函数名(参数列表) // 调用这工具类里面的函数 * c$().函数名(参数列表) // 调用这工具类里面的函数 */ var c$ = window.c$ = function(arg, dom) { // 如果没有参数,则返回 本对象;让程序可以这样写: c$().函数名(参数列表) if (arguments.length === 0) return c$; if (typeof arg == 'function') return c$.ready(arg); // 有参数则调用获取元素的函数,为 c$.getElement 的缩写 return c$.getElement(arg, dom); }; /** * 这是错误调试程序 * 当页面发生错误时,提示错误讯息;仅测试环境里会提示,正式环境下不提示错误。 * 注意:chrome、opera 和 safari 浏览器不支持 onerror 事件 * @param msg 出错讯息 * @param url 出错档案的地址 * @param sLine 发生错误的行 * @return true 返回true,会消去 IE下那个恼人的“网页上有错误”的提示 */ window.onerror = function(msg, url, sLine) { // 测试时可以提示出错信息;正式发布时不提示 if (c$.isTest) { var errorMsg = "当前页面的javascript发生错误.\n\n"; errorMsg += "错误: " + msg + "\n"; errorMsg += "URL: " + url + "\n"; errorMsg += "行: " + sLine + "\n\n"; errorMsg += "点击“确定”消去此错
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金石不渝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值