当前位置: 首页>后端>正文

javascript学习

一、添加js

  • 1、内部样式
  • 2、外部样式
  • 3、内联样式(不推荐)

二、各种知识点

1、变量 常量
  • var 声明一个变量
  • let 声明一个块作用域中的局部变量
  • const 声明一个常量
  • 变量声明和初始化是可以分开的
  • 常量必须在声明时赋值,之后不能修改
  • var 会把变量提升到当前全局或函数作用域
  • 变量和常量的选择:如果明确知道一个标识符定义后不再修改,应该尽量声明成 const 常量,减少被修改的风险,减少BUG
2、类型转换
var a = '5' + 4 + 3;
// a为543
var a = 5 + 4 + '3';
// a为93
3、== 与 ===
  • ==会进行类型转换例如
123 == '123';   //true
123 === '123';  //false
4、getBoundingClientRect()

getBoundingClientRect()获取元素位置,这个方法没有参数
getBoundingClientRect()用于获得页面中某个元素的左,上,右和下分别相对浏览器视窗的位置。
getBoundingClientRect()是DOM元素到浏览器可视范围的距离(不包含文档卷起的部分)。

该对象有6个属性:top,lef,right,bottom,width,height; 可以用.来取到
例如:box.getBoundingClientRect().top

5、定时器setInterval
  • 开启定时器
var timer = setInterval(function(){

}, 1000)

参数1:回调函数
参数2:时间(毫秒)

  • 关闭定时器
    clearInterval(timer)
6、HTML <input> required 属性

required 属性规定必需在提交表单之前填写输入字段,就是不能为空。
required 属性适用于下面的 input 类型:text、search、url、tel、email、password、date pickers、number、checkbox、radio 和 file。

7、innerText和innerHTML区别
  • innerText:纯文本
  • innerHTML:InnerHTML允许您使用HTML格式的文本。
8、HTML DOM createElement() 方法

createElement() 方法通过指定名称创建一个元素
例如创建一个按钮

const btn = document.createElement('button')
9、HTML DOM appendChild() 方法

appendChild() 方法可向节点的子节点列表的末尾添加新的子节点。

10、getAttribute

获取对应的属性的值,比如

<input value="3652" id="inputdemo" type="password">
const type = document.getAttribute('type')
//值为password

同样的有setAttribute(key, value)
removeAttribute

11、js变量前的+是什么意思

例如

const value = container.innerText
//value值为0
console.log(value + 100)
console.log(+value)

这里的+value可以理解为Number(value),强制转换为数字类型
会将其按照Number函数的规则转换为数值或者NaN,规则大概如下:

  • Boolean:true返回1,false返回0
  • 数据值,直接返回
  • null,返回0
  • undefined,返回NaN
  • 对于字符串,将其转换为十进制数值,会忽略前面的0(16进制除外),空字符串返回0,浮点数会返回浮点数值。其他格式字符串(无论是否数字开头,返回NaN,字符串中好几个小数点,返回NaN)
12、js 单击、双击

单击

button.onclick = function() {
  console.log('单击')
}

双击

button.ondblclick = function() {
  console.log('双击')
}
13、箭头函数与function的区别

写法、this的指向、是否可以定义构造函数、是否必须先定义再引用

参考文章:https://www.jianshu.com/p/b80dca096e10

14、string 的slice()方法

string.slice(start,end)
start 必须。 要抽取的片断的起始下标,第一个字符位置为 0。如果为负数,则从尾部开始截取。
end 可选。 紧接着要截取的片段结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。

15、floor() 方法

Math.floor(x)

返回值
Number 小于等于 x,且与 x 最接近的整数。

16、random()方法

Math.random()
返回值
Number 0.0 ~ 1.0(不包含) 之间的一个伪随机数。

17、JS中判断鼠标移入移出方向

mouseenter和mouseleave事件
这两个事件和mouseover、 mouseout的对比

mouseover和mouseenter都是鼠标移到元素身上就触发,区别是
1、mouseover经过自身盒子触发,经过子盒子也触发,拥有冒泡特性
2、mouseenter只经过自身盒子触发,没有冒泡特性
mouseenter不会冒泡,搭配鼠标离开事件mouseleave同样不会冒泡

18、JS中的拖拽

首先是给元素添加draggable=true的属性,然后就可以开启拖拽
拖拽的操作如下图所示:


javascript学习,第1张

参考:https://blog.csdn.net/weixin_46831501/article/details/123267221
https://blog.csdn.net/weixin_39772652/article/details/110610051

19、vue自定义组件@click点击失效问题及解决

自定义组件无法绑定原vue文件内的原生click事件,根据查询vue官方文档,得知click事件作用于组件内部,如果组件内没有写click事件,便会无响应。

  • 解决方法
    参照官方文档,可以用@click.native=“click”解决
20、reload() 方法

reload()方法用于刷新当前文档。
reload() 方法类似于你浏览器上的刷新页面按钮。

21、nextSibling 和nextElementSibling的区别

nextSibling 属性返回元素节点之后的兄弟节点(包括文本节点、注释节点);
nextElementSibling 属性只返回元素节点之后的兄弟元素节点(不包括文本节点、注释节点);
nextElementSibling属性为只读属性。
注意: 空格、回车也会看作文本,以文本节点对待。
下例中,如果两个li元素之间有空格、回车,将返回 “undefined”。

今天犯了个很蛋疼的错误,调试了半天,才发现在input 与font 标签之间多了个回车。(中间不应有任何内容,包括,回车,换行)

<input type="text" name="username" onblur="checkName();" /><font></font>

22、getComputedStyle的用法

getComputedStyle()这个方法来获取元素当前的样式
这个方法是window的方法,可以直接使用

需要两个参数

第一个:要获取样式的元素
第二个:可以传递一个伪元素,一般都传null

例如

  var box1=document.getElementById("box1");
  //这里调用getComputedStyle来获取left的值
  var left=getComputedStyle(box1,null)["left"]; 
  alert("left的值是"+left); 
23、axios和fetch的区别

https://www.jianshu.com/p/e7c720d2be6b
https://zhuanlan.zhihu.com/p/353492075

24、DOM事件中target和currentTarget的区别

https://www.cnblogs.com/chendezhen/p/15318759.html

https://www.php.cn/css-tutorial-412196.html

https://www.zhihu.com/question/20227599

https://www.imooc.com/article/51405

https://www.runoob.com/jsref/prop-element-offsetheight.html

https://blog.csdn.net/shibazijiang/article/details/103894498

http://t.zoukankan.com/liluning-p-13268170.html

http://t.zoukankan.com/liluning-p-13268170.html

http://ui.itheima.com/news/20211102/170622.html

https://blog.csdn.net/u010142437/article/details/85762717


https://www.xamrdz.com/backend/3sf1937873.html

相关文章: