首页 > 其他分享 >JS基础笔记汇总

JS基础笔记汇总

时间:2022-10-01 12:44:55浏览次数:57  
标签:arr 汇总 笔记 JS 数组 var js 节点 属性

JS基础笔记最全的汇总

javascript介绍以及起源
目录
1.变量和常量的知识
2.基本数据类型
3.运算符
4.基本数据类型间的转换
5.流程控制语句

 

一、javascript介绍以及起源


js一种直译型脚本语言,一种动态语言、弱类型语言、支持内置类型。它的解释器被称为javascript引擎。它浏览器的一部分。用于客户端的脚本语言,最早是html网页上使用用来给HTML增加动态效果。
1995年,网景首次设计实现的 。因为网景跟sun合作的,因此才起名叫javascript,它除了语法风格跟java有点接近,其他跟java没有任何关系

为了取得发展以及技术上的优势 微软曾推出过Jscript,跟javascript一样可以在浏览器上运行。为了统一规格,javascript兼容于ECMA标准,因此它也称为ECMAScript

ECMA欧洲计算机联合商协会


js用途
1、嵌入文本到我们的HTML页面上
2、对浏览器事件作出响应
3、读写HTML
4、在数据提交到服务器之前先做数据验证
5、检测访客的浏览信息
6、控制cookie
7、基于nodeJs技术进行服务端的编程

js组成部分
1、ECMAScript规定核心的语法
2、DOM(document object model):文档对象模型
3、BOM(browser object model):浏览器对象模型


二、javascrip的语法
js可以有几种写法:
1、写在script标签内
2、写在外部js文件里面
3、写在标签内部的

三、标识符和关键字
1、什么是标识符:
/*
* 标识符
* - 在JS中所有的可以由我们自主命名的都可以称为是标识符
* - 例如:变量名、函数名、属性名都属于标识符
* - 命名一个标识符时需要遵守如下的规则:
* 1.标识符中可以含有字母 、数字 、下划线_ 、$符号
* 2.标识符不能以数字开头
* 3.标识符不能是javascript中的关键字或保留字
* 4.标识符一般都采用驼峰命名法
* - 首字母小写,每个单词的开头字母大写,其余字母小写
* helloWorld xxxYyyZzz
*
* - JS底层保存标识符时实际上是采用的Unicode编码,
* 所以理论上讲,所有的utf-8中含有的内容都可以作为标识符
*/
/*
2、常用的标识符格式:
i j
xxx_zzz
_xxxx
$xxx
a1
aaaBbbCcc
AaaBbbCcc
!!!!注意一点:标识符不要跟关键字同名,数字不允许作为首字母出现,这样我们js比较容易的区分开标识符和数字

3、关键字:
关键字是指我js语言中有特定含义,称为js语法中一部分的 那些单词
var let const for if foreach break continue do while switch....
4、保留字:
未来某个js版本会称为关键字的单词,一样是不可以当成变量名或者方法名来使用
5、注释:
//:单行注释
/**/:多行注释



四、js的数据类型
数据类型 就是我可以了解到的是描述数据的类型

js基本的数据类型 :数字类型,字符串型,布尔型,undefined,null
对象类型 数组

1、数字类型(Number)
只有一种数字类型,数字 可以是小数 ,也可以的整数
以0开头 默认使用8进制来表示我的这个数字
以0x开头 默认使用16进制来表述我的这个数字
如果以-开头 默认以负数
如果我带有e:以科学计数法来解析我的这个数字


2、字符串型(string)
字符串是存储字符的变量,用来表示文本的数据类型,程序中的字符串是包含单引号/双引号的,由单引号来界定我双引号中包含的字符串 反过来
es6模板字符串("`")

3、布尔类型(boolean)

一般是用在流程控制语句中,字符串和数字类型都是无穷多个,然而我们的布尔数据类型只有两个:true 和 false
这两个个值一般用于说明某个事物是真或者假
js一般用布尔类型来比较所得到的结果

4、null(空)
null
关键字null是一个特殊的值,它表示变量为空值,用来定义空的或者是不存在的引用。
如果试图去引用一个没有定义的值,就会返回一个null。
这里注意一点:null并不等于"" 或者0

5、undefined(未定义)
这个值表示变量不含有值,没有定义的值,或者被定义了一个不存在的属性值


!null和undefined区别:
null它表示一个变量被赋予一个空值,而undefined是表示变量还没有被赋值

五、运算符

用于执行程序代码运算,会针对一个以上操作数来进行

1、算术运算符


+ - * / % ++ --


字符串拼接使用“+”

2、比较运算符

<
>
==
!=
<=
>=
=== 全等于:将数值以及数据类型一并比较
!==不全等于:将数值以及数据类型一并比较

3、赋值运算符
=
+=

-=
*=
/=
%=
a=a+2;==>a+=2
a=a-2;==>a-=2
a=a*2;==>a*=2
a=a/2;==>a/=2
a=a%2;==>a%=2

4、逻辑运算符
&& 全真为真
|| 一个为真就是真

! 取反


逻辑短路


5、三元运算符(三目运算符)
表达式1?表达式2:表达式3

当我的表达式1成立时 执行表达式2 否则执行表达式3



六、数据类型间转换
1、显示数据类型转换
1.1转数字类型:
1.Number():可以将任意类型的参数转换为数字类型,遵循以下规则:
1、如果它是一个布尔值true和false将被分别转成1和0;
2、如果它是以个数字,返回它本身
3、如果是null,返回0;
4、如果是undefined,返回NaN
5、如果是一个字符串:
1)如果这个字符串只包含数字,则直接将它转成10进制数字(忽略前面的0)
2)如果有有效浮点格式,将它转成一个浮点数值
3)如果是空字符串,转换为0
4)如果以上都不符合==>NaN

2.parseInt(string,num):可以解析一个字符串,返回一个整数

1)忽略字符串前面所有的空格,直到找到第一个非空字符为止
2)如果第一个字符不是数字或者“-” 直接返回NaN
3)如果第一个字符是数字,它解析到遇到的第一个不是数字的字符为止


4)如果上面解析完结果是以0开头,就将它当成一个八进制来解析
5)如果以0x开头,则当成十六进制来解析。
6)如果我指定了num参数,那么 它就以num进制来解析

3.转字符串类型:
1.String():将任意的一个类型的值转换为字符串,遵循一下下规则:
1)如果是null,==>"null"
2)如果是undefined ==>"undefined"


toFied(num):可以把Number类型四舍五入为指定小数位的字符串。
返回的字符串,num保留小数位



Boolean():如果这个值是空字符串("")、数字零(0)、undefined或者null 会返回false,否则返回true
!空格并不是空字符串

2、隐式数据类型转换
js的数据类型非常弱的,在使用算术运算符的时候,运算符两边的数据类型可以是任意的 这是因为js的引擎它在代码运行之前偷偷把数据类型进行转换 ,这种转换我们称之为隐式转换

流程控制语句:
if语句
if(条件){
函数体
}

if else语句
if(条件){
函数体1
}else{
函数体2
}

if.....else if......else语句
if(条件1){

}else if(条件2){

}else if(条件n){

}else{

}
switch语句:多分支语句

switch(变量){
case a:
.....
break;
case b:
.....
break;
case c:
...
break;
........
default:
....
break;
}

循环结构:
1、while循环:先判断条件 当条件成立 再执行
while(循环成立条件){
....
}

2do...while循环:不论条件成不成立 先执行一遍 再判断
do{
.....
}while(循环成立条件)

3、for循环
4、for in循环

continue:
跳过当前循环,直接进入循环的下一个步骤

break:
结束循环

 

 

jsDOM操作
目录
1.属性、文本操作
2.css操作
3.对象与数组
4.面向对象编程

 

DOM树

DOM节点:

元素节点:
属性节点:
文本节点:

js操作节点(增删改查)
一、获取节点:
1、通过id获取
document.getElementById("id")
节点.getElementById("id值")
!返回的是一个具体的节点

2、通过标签名来获取节点
getElementsByTagName("div")
!返回的是一个节点数组,即使只有一个

3、通过标签的Name值来获取
getElementsByName("标签的name值")
!返回的是一个节点数组

4、通过class值来获取节点
getElementsByClassName("类名")
!返回的是一个节点数组

*5、querySelector('选择器')//根据我选择器的结果集返回第一个
*6、querySelectorAll('选择器')//根据我选择器的结果集返回

!!!getElementsByClassName在IE9以下无效的


7、获取节点.parentNode-->获取到节点的父节点
8、获取节点.children-->获取到节点的子节点集合
获取节点.childNodes-->获取到节点的子节点集合(带有前后两个空白的文本节点)
二、创建插入节点
1、document.createElement("div")//创建一个元素节点
2、document.createTextNode("文本文本")//创建一个文本节点

被插入的节点.appendChild(创建的节点)//在节点后面添加

父节点.insertBefore(创建的节点,被插入的节点)//在已知父节点的某个孩子前面添加内容
改变文本内容:
选中的元素.innerText='';//直接将HTML代码当做字符来处理
选中的元素.innerHTML='';//可以识别HTML代码
删除:直接设置为空("")

替换节点:
父节点.replaceChild(新节点,老节点)

克隆(复制节点)

选中的元素.cloneNode(true/false):
当clone参数为true的时候:选中元素里面所有懂得内容克隆
当clone参数为false的时候:选中元素本身克隆

删除节点:
父节点.removeChild(子节点)


节点的属性操作
如何来获取属性:
选中的元素.getAttribute("属性名")
更改属性:
选中的元素.setAttribute("属性名","新的属性值")
新增属性
选中的元素.setAttribute("原本没有的属性名","属性值")
删除属性
选中的元素.removeAttribute("属性名");

js对象及数组

js对象的分类:

内置对象
js已经提供好的对象,这些对象它有自己的方法和属性。如:
Number,String,Boolean,Date,Math,Array,window,location......


自定义对象
开发人员自己去定义的一个对象

1、如何来定义对象:
1)语法:var obj={};
2)使用我们的new关键字来创建
var obj=new Object()//创建一个空对象
var arr = new Array()//创建一个空的数组对象
var time = new Date()//创建一个初始化的日期对象
3)通过构造函数的形式来创建对象
var obj = new Test();
function Test(num1,num2){
this.number1 = num1;
this.number2 = num2
}

4)通过Object.create()创建对象
var obj = Object.create(null)
var obj = Object.create({"name":"tom","age":"3"})
2、对象的属性
1、对象.属性名 = 属性值
2、对象属性值可以是任何一种js的数据类型 包括对象
3、获取对象的属性
1、对象.属性名
2、对象[属性名]
4、遍历对象(for in循环)
for(var 变量 in 对象){
// 属性名:变量
// 属性值: 对象[变量]
}
二、数组
1、数组内可以存放任意数据类型的数据(本质上它也是对象)
2、数组元素不赋值的情况下 值为undefined
3、如果数组打印的时候,元素不赋值""
4、访问数组范围之外的元素,不会出现越界的问题,undefined
5、定义数组大小,照样可以添加更多元素

定义数组的方法:
1、var arr=[]//定义一个空数组
2、var arr=[10,20,{"name":"tomy","age":19},0.1,"string",true,["aaa","bbb"]]//定义的同时赋值
3、var arr=new Array();//定义一个空数组
4、var arr = new Array(10,20,{"name":"tomy","age":19},0.1,"string",true,["aaa","bbb"])//定义的同时赋值
5、var arr=new Array(10)//定义一个长度为10的数组

赋值:
数组名[下标] = 值

取值:
数组名[下标]

更改值:
数组名[下标] = 值

数组的分类:
索引数组:下标是数字
关联数组:下标是可以是自定义的字符


一维数组


二维数组:数组里面的元素还是数组
var arr = [["id","aaa",10],[1,1,2,3],[1,1,1]]

循环二维数组
var arr = [["id","aaa",10],[1,1,2,3],[["a","b","c"],1,1]]

多维数组

js 操作数组的api
!1)concat():连接两个或更多的数组的方法(不修改原数组)
var arr1 = [1,2,3];
var arr2 = [7,8,9];
var newArr = arr1.concat(arr2)
!2)join():将数组转成字符串,并通过指定的字符分割(未指定默认使用逗号“,”)
var arr=[1,2,3]
var str=arr.join("")
3)toString():吧数组转成字符串然后通过,隔开
var arr=["a","b","c","d"];
var string = arr.toString()
console.log(string)
!4)slice():从已有的数组中返回指定的元素
语法:
var string = arr.slice(start,end)//start==>开始位置下标 end==>结束位置下标
var Arr = [1,2,3,4,5,6,7,8,9,10]
var subArr = Arr.slice(2,4)
console.log(Arr)
5)splice():删除 插入 会修改原数组
var arr=[]
语法:var temp = arr.splice(num1,num2)
arr:被切割数组
temp:切割完获取数组元素的数组
num1:切割开始的下标
num2:切割多少位


var del = [1,2,3,4,5,6,7,8,9]
var delected = del.splice(3,5)
console.log(delected)
console.log(del)
!6)push:向数组的末尾添加一个或多个的新元素
var arr=[1,2,3,4,5,6,7,8,9]
arr.push(10)

!7) pop:删除并返回最后一个元素(直接修改原数组)
var arr=[1,2,3,4,5,6,7,8,9]
var a = arr.pop()
!8) shift:删除并返回第一个元素
var arr=[1,2,3,4,5,6,7,8,9]
var a = arr.shift()
!9) sort:排序
var arr=[9,1,3,6,7,2,8,5,4]
var a = arr.sort()
10)reverse:颠倒的数组顺序
var arr=[1,2,3,4,5,6,7,8,9]
var a = arr.reverse()

 

标签:arr,汇总,笔记,JS,数组,var,js,节点,属性
From: https://www.cnblogs.com/cenguigui/p/js.html

相关文章

  • 社会学笔记
    社会学不是单一理论体系的学科.其不同理论体系之间的研究基础是不同的,即使有同一概念在不同理论体系中理解是不同的社会学学生和经济学学生的差异:经济学由于其体系......
  • CSS入门学习笔记
    CSS入门学习笔记一、CSS简介1、什么是CSS?2、为什么使用CSS?3、CSS的作用二、CSS语法1、CSS基础语法2、CSS注释语法3、CSS应用方法三、CSS选择器1、元素选择器2、类选择器3、......
  • Django学习笔记(一)--环境搭建
    1、建立虚拟环境目的:隔离项目,便于部署(1)创建存放项目和虚拟环境的目录,并切换到该目录中work@wanglin:~$mkdirlearning_logwork@wanglin:~$c......
  • 《Unix/Linux系统编程》学习笔记5
    第十一章EXT2文件系统一.知识点归纳(一)EXT2文件系统数据结构1.通过mkfs创建虚拟磁盘在Linux下,命令mke2fs[-bblksize-Nninodes]devicenblocks在设备上创建......
  • HTML入门笔记
    HTML入门笔记目录 一、HTML简介1、HTML是什么?2、什么是HTML标签?二、HTML文档结构1、HTML基本结构2、文档类型声明标签3、lang语言属性4、字符集与编码三、HTML基础......
  • Pillow常用方法汇总
    打开图片打开一张图片是一个很快的操作,和图片的尺寸以及压缩方式无关,打开的时候只读取文件header来获取文件格式、模式、尺寸等信息fromPILimportImageim=Image.......
  • [笔记] 将原生窗口嵌入到Swing/AWT当中
    使用Canvas的窗口进行渲染继承Canvas,在其paint中启动原生窗口渲染,并更新其大小例子:这里用到了JNA的Native.getComponentPointerclassMyNativeWindow(handle:Point......
  • MYSQL学习笔记之基本操作
    基本操作(1)登录MYSLQ步骤如下:①(win+R)--->cmd-->命令窗口--->输入"mysql-uroot-P端口号-p"②登录成功效果WelcometotheMySQLmonitor.Commandsendwith;or......
  • 使用 NodeJS、Typescript 和 tsyringe 实现依赖倒置
    使用NodeJS、Typescript和tsyringe实现依赖倒置依赖倒置是5个SOLID原则之一,在我看来,也是最重要的原则之一,因为它允许通过抽象而不是使用具体实现来解耦模块。记......
  • 如何在 Node.js 中获取没有扩展名的文件名
    如何在Node.js中获取没有扩展名的文件名关于如何在Node.js中轻松获取没有扩展名的文件名的教程。要在Node.js中获取不带扩展名的文件名,请使用解析()方法从小路......