js学习笔记(一)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: js学习笔记

基本语法


1.引入方式


  • 第一种
<script>
    js代码
</script>


  • 第二种
<script src="js文件"></script>


2.注释


  • 单行注释
<script>
    //这是单行注释
</script>
  • 多行注释
<script>
    /*
      这是多行注释
    */
</script>



3.输入输出语句


  • prompt(),范例
prompt("请输入:");
//该语句在页面弹出一个输入框,并且带有提示
  • alert(),范例
alert("提示");
  • console.log(),范例
console.log("控制台输出的内容");
  • document.write(),范例
document.write("向页面输出内容");



4.变量和常量


  • JavaScript是弱类型语言,定义变量时不用区分具体数据类型
  • 定义局部变量
    语法:let 变量名 = 值;
    范例:
let name = "张三";
let age = 23;


  • 定义全局变量
    语法:变量名 = 值;
    范例:
school = "清华大学";


  • 定义常量
    语法:const 常量名 = 值;
    范例:
const PI = 3.1415926;


5.原始数据类型

类型

说明

boolean

布尔类型,true或false

undefined

未定义,即定义变量时没有赋值

null

声明null为变量值

number

整数或浮点数

string

字符串

bigint

大整数,例如bigint num = 10n;需要在数字后加上n


判断原始数据类型的方法:


使用typeof()函数


范例:


let l1 = true;
document.write(typeof(l1)+"<br/>"); //输出boolean
let l2;
document.write(typeof(l2)+"<br/>"); //输出undefined
let l3 = null;
document.write(typeof(l3)+"<br/>"); //输出Object,null被认为是对象占位符
let l4 = 123;
document.write(typeof(l4)+"<br/>"); //输出number
let l5 = "abc";
document.write(typeof(l5)+"<br/>"); //输出string
let l6 = 10n;
document.write(typeof(l6)+"<br/>"); //输出bigint

6.运算符


  • JavaScript中运算符和Java的大致相同
  • 不同点:
  1. ==号比较的是变量的值是否相同,如字符串的"10"跟数字的10比较返回true
  2. === 号比较类型和值,则字符串的"10"跟数字的10比较返回false
  3. 字符串类型的数字计算时会发生类型转换


7.流程控制语句


  • 与Java的相同,但是注意在流程控制语句中的变量定义语法不同


8.数组


  • JavaScript数组长度和类型没有限制
    定义一个数组的语法是:let 数组名 = [元素];
    范例:
let arr = [1,2,3];


  • 获取数组长度
    使用函数:数组名.length
    范例:
arr.length;
  • 数组复制
    语法:数组1 = [...数组2];
    范例:
let a = [1,2,3];
let b = [...a];//数组b内容也是1,2,3


  • 数组合并
    语法:数组1 = [...数组2,数组3];将数组2和3合并到1
    范例:
let a = [1,2,3];
let b = [4,5,6];
let c = [...a,...b];//数组c内容是1,2,3,4,5,6


  • 字符串转数组
    语法:数组 = [...字符串];
    范例:
let s = "lxq";
let a = [...s];a数组内容是l,x,q


9.函数


  • JavaScript中的函数类似于Java中的方法
  • 普通函数
    语法:
function 方法名(参数){
    方法体;
    return 返回值;
}

注意:如果不需要返回值则不用写return语句,参数不用写类型

  • 可变参数
    语法:
function 方法名(...参数){
    方法体;
    return 返回值;
}


  • 匿名函数
    语法:
function(参数){
    方法体;
    return 返回值;
}

DOM


1.概述


  • DOM指document object model,即文档对象模型
  • 将HTML文档各个组成部分封装为对象,借助这些对象可以对HTML文档进行增删改查的动态操作
  • 相关对象:
  1. Document,表示文档对象
  2. Element,元素对象
  3. Attribute,属性对象
  4. Text,文本对象


2.元素对象的操作


  • 根据document文档对象来获取元素对象

方法

说明

getElementById(id属性值)

根据id属性获取元素对象

getElementsByTagName(标签名)

根据标签名获取元素对象

getElementsByName(name属性值)

根据name属性获取元素对象

getElementsByClassName(class属性值)

根据class属性获取元素对象

  • 根据当前元素对象获取父元素对象
    子元素对象.parentElement
  • 通过文档对象创建新元素对象
    document.createElement(标签名);
  • 将指定子元素对象添加到父元素中
    父元素对象.appendChild(子元素对象);
  • 父元素删除指定的子元素
    父元素对象.removeChild(子元素对象);
  • 父元素用新子元素替换旧子元素
    父元素对象.replace(新元素,旧元素);


3.元素内属性操作


  • 给元素设置属性
    setAttribute(属性名,属性值);
  • 根据属性名获取属性值
    getAttribute(属性名);
  • 根据属性名移除属性
    removeAttribute(属性名);
  • 为元素添加样式
    方式一:
    元素对象.style.样式=值;
    如:
let ele = document.getElementById("a");
ele.style.color = "red";

方式二:
元素对象.className = "类选择器名";


4.元素内文本操作


  • 设置文本内容,不解析标签
    元素对象.innerText="文本内容";
    注意:不解析标签是指文本内容如果有HTML标签也不会解析,只会当成文本
  • 设置文本内容,解析标签
    元素对象.innerHTML="文本内容";
    注意:这里的文本内容会被解析标签


事件


  • 事件是某些组件完成某些操作时会触发的代码
  • 常用事件

事件

说明

onload

某个页面或图像被加载完成

onsubmit

表单提交时

onclick

鼠标点击事件

ondblclick

鼠标双击

onblur

元素失去焦点

onfocus

元素获得焦点

onchange

用于改变域的内容

  • 绑定事件的方式
  1. 通过标签中事件属性进行绑定
    范例:
<button onclick="触发的操作"></button>

b. 通过DOM元素进行绑定

let b = document.getElementById("btn");
b.onclick=function(){//使用匿名方法
    触发的操作;
}


面向对象


1.定义类的方式


  • 方式1
    语法:
class 类名{
    //构造方法
    constructor(变量列表){
        变量赋值;
    }
    //普通方法
    方法名(参数列表){
        方法体;
        return 返回值;
    }
}

用法:

  • 方式2
    语法:
//在定义类的时候已经创建了对象
let 对象名 = {
    变量名 : 变量值,
    变量名 : 变量值,
    方法名 : function(参数列表){
        方法体;
        return 返回值;
    },
    方法名 : function(参数列表){
        方法体;
        return 返回值;
    }
};

用法:


目录
相关文章
|
2月前
|
JavaScript 前端开发 API
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
|
1月前
|
JavaScript 前端开发
【干货分享】JavaScript学习笔记分享
【干货分享】JavaScript学习笔记分享
52 0
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
4月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的云的学习笔记系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的云的学习笔记系统附带文章源码部署视频讲解等
39 0
|
6月前
|
移动开发 JavaScript 前端开发
webgl学习笔记3_javascript的HTML DOM
webgl学习笔记3_javascript的HTML DOM
64 0
webgl学习笔记3_javascript的HTML DOM
|
6月前
|
JavaScript 前端开发 Java
webgl学习笔记2_javascript基础快速学习
webgl学习笔记2_javascript基础快速学习
50 0
|
6月前
|
前端开发 JavaScript API
JavaScript学习笔记(一)promise与async
JavaScript学习笔记(一)promise与async
|
6月前
|
存储 JavaScript
【ES6系列第二篇】适用JS初学者的Set对象和Map对象学习笔记
【ES6系列第二篇】适用JS初学者的Set对象和Map对象学习笔记
48 0
|
存储 JavaScript 前端开发
【js】函数概述学习笔记(8)
【js】函数概述学习笔记(8)
41 0
|
存储 JavaScript
【js】数组学习笔记(7-2)
【js】数组学习笔记(7-2)
62 0
下一篇
无影云桌面