减号,乘号,除号都有隐式转换的功能
只有在其 所在的 以及 之后的式子可以转换,
简单理解为出现这些符号之后的所有都可以转换
alert(‘1’+23-true)//122
alert(‘1’-23+false)//-22
alert((‘1’-23)+false)//-22
alert((‘1’+23)-false)//123 括号里的已经形成’1’23,无法转换了
alert(‘1’+23-false)//123

请写出获得15-23(包含15和23)之间的随机 整数 的代码。(4分)
Math.floor(math.random()(23-15+1)) + 15
Math.ceil(math.random()
(23-15)) + 15
注意向上、向下取整问题,里面涉及的数值不手动计算,因为这样代码可读性更高

var str=’1235746’
console.log(str.indexOf(“@”));
// indexOf是返回某个字符在字符串出现的位置的,如果不存在,返回-1,如果存在,返回第一次出现的位置
//同理;indexof()可以获取数组中某个元素的索引,如果不存在返回-1
例如取消勾选中的一段代码
var x =arr.indexOf(this.parentNode.parentNode);
arr.splice(x,1)

isNaN(x) (就是判断x是不是NaN,是就返回true)
如果 x 是 特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false (就是判断x是不是NaN,是就返回true)

NaN:
NaNNot a Number,非数)是数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中使用。

break、continue和 return的区别?
在循环中使用 break 和 continue
break终止循环的执行;
continue中断本次循环继续下次循环。
在函数中使用 return,可以返回值并终止函数的执行。

JavaScript 数据类型

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。

在写代码的时候,遇到一些繁琐的名称,可能会出现逻辑问题而不自知,比如e.target.XXX,此时最好创建一个新的变量名来代替e.target.XXX,纠错时也会容易很多

注意DOM结构

当鼠标拖拽事件时,分为onmousedown,onmousemove,onmouseup三个事件,结构无错,不报错,但运行不对是因为默认事件的发生,鼠标抬起的动作无法执行
e.preventDefault()//默认事件不会发生

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .big_pic {
  10. width: 360px;
  11. margin: 0 auto;
  12. position: relative;
  13. }
  14. #small_pic {
  15. width: 360px;
  16. height: 50px;
  17. border: 1px solid black;
  18. border-radius: 26px;
  19. margin: 0 auto;
  20. background-color: skyblue;
  21. position: relative;
  22. }
  23. #arrow {
  24. border-radius: 50%;
  25. /* border: 1px solid red; */
  26. overflow: hidden;
  27. width: 50px;
  28. height: 50px;
  29. top: 0;
  30. position: absolute;
  31. }
  32. #arrow.img {
  33. width: 50px;
  34. height: 50px;
  35. }
  36. .suspension {
  37. position: absolute;
  38. left: 0;
  39. top: 30px;
  40. }
  41. </style>
  42. </head>
  43. <body>
  44. <div class="big_pic">
  45. <img src="./images/a.png" alt="">
  46. <img src="./images/a1.png" alt="" class="suspension">
  47. </div>
  48. <div id="small_pic">
  49. <div id="arrow">
  50. <img src="./images/arrow.png" alt="">
  51. </div>
  52. </div>
  53. <script>
  54. var suspension = document.querySelector('.suspension')
  55. var arrow = document.querySelector('#arrow')
  56. var mouse_start_x
  57. var mouse_end_x
  58. arrow.onmousedown = function (e) {
  59. var d = e.clientX - this.offsetLeft
  60. console.log(d);
  61. e.preventDefault()//默认事件不会发生
  62. arrow.onmousemove = function (e) {
  63. mouse_end_x = e.clientX - d
  64. console.log('-----------');
  65. console.log(mouse_end_x);
  66. if (0 <= mouse_end_x && mouse_end_x <= 300) {
  67. arrow.style.left = mouse_end_x + 'px'
  68. suspension.style.left = mouse_end_x + 'px'
  69. }
  70. }
  71. }
  72. arrow.onmouseup = function () {
  73. console.log('****');
  74. if (100 <= mouse_end_x && mouse_end_x <= 120) {
  75. alert('验证成功')
  76. arrow.style.left = ''
  77. suspension.style.left = ''
  78. }
  79. arrow.onmousemove = null;
  80. arrow.onmouseup = null
  81. }
  82. </script>
  83. </body>
  84. </html>

冒泡和默认事件

1.event.stopPropagation()方法

这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个链接,这个链接仍然会被打开,

2.event.preventDefault()方法

这是阻止默认事件的方法,调用此方法是,连接不会被打开,但是会发生冒泡,冒泡会传递到上一层的父元素;

3.return false ;

这个方法比较暴力,他会同事阻止事件冒泡也会阻止默认事件;写上此代码,连接不会被打开,事件也不会传递到上一层的父元素;可以理解为return false就等于同时调用了event.stopPropagation()和event.preventDefault()
原文博客链接:https://blog.csdn.net/wxl1555/article/details/53128966

JSON.parse() 将JSON字符串转换为对象、数组
JSON.stringify() 将对象、数组转换为JSON字符串
JSON是一种数据交换格式,拥有固定格式字符串

get请求直接被嵌入在路径中,URL是完整的请求路径,包括?后的部分
post请求内容全部在请求体中

find()方法返回通过条件的 数组的 第一个值,没有符合元素就返回undefined

cookie是在服务端生成的,传递到客户端,在客户端存储的一种技术,用来解决http协议的无状态问题

ES5中的普通函数内部this并不是指向window,而是谁调用就指向谁

若父元素要成为子元素的绝对定位参照物,只要父元素中有position属性即可

jQuery中的方法和原生JS的方法不通用

onchange监听事件是在当表单元素发生改变且失去焦点时触发

jQuery是一个对原生JS封装的库

事件委托的原理:事件委托就是基于JS的事件流产生的,事件委托是利用事件冒泡,将事件加在父元素或者祖先元素上,触发该事件
优点:减少事件注册,节省内存空间,执行效率提高
新增元素节点时,不需要给新增节点绑定事件