JS第一周总结

97 阅读5分钟

1.js是啥:js是一个由js引擎进行翻译的面向对象的翻译型脚本语言;特点是由上到下依次翻译运行,遇到错误会停止。 2.变量和常量 变量就是用来保存动态数据的值 语法 var+变量名 常量是一个固定值,创造了以后值不会改变。 语法是const+常量名; 注意:变量名命名规范不以数字开头,不使用特殊符号,_可以; 3.算数运算符:+ — / * % %取余,常用来判断奇偶;

  • 俩个数字直接相加得到的数字;
  • 如果和字符串相加,就是拼接效果。
  1. 数据类型

      string  ""  颜色是黑色
      number 数字 
      !isNaN() 常用来判断用户恶意输入,是否输入了数字
      Boolean  取值有true,fasle 
      undefind 未定义的,通常是声明变量未赋值;
      null  通常用来清空内存
    

5,数据类型的转换 1.算数运算符的隐式转换, 1,算数运算+ 俩边都为数字才能计算, 当有一边是字符串则为拼接; 2.当* / - %字符碰到纯数字的字符串也可以转换为数字, 如果有非数字输出NaN; true->1 false->0 undefined->NaN null->0 '100'->100 '100px'->NaN NaN不是一个数字,但是是数字类型,参与运算都会得到NaN; 2.强制转换 var str=parseInt/Float(str);取整,取到小数点后面 var str=Number(); 6.函数的定义 一段代码段,可重复执行; 创建函数, function 函数名(形参...){} 调用函数 函数名(实参...)

7.分支结构 根据条件进行判断决定执行哪段代码; 条件判断 1.比较符 == > < != (判断是俩个== 赋值是一个=) 返回结果:true false 2.逻辑运算符 &&且都满足返回true; ||或者一个条件满足就返回true; 3.if(){}; if()else{}; 8.循环结构:根据条件判断代码执行几次; while(循环条件) { 循环体,循环变量的变化} 通常不知道用户输入几次时,适用于while循环搭配break停止循环 for(var 变量=值;循环条件,循环变量变化){ 循环体} do(循环体)while{条件表达式} 先执行一边循环体,在判断一次 三者区别:1.三个循环多数情况下都可以相互替代作用 2.如果只是用来记次数,跟数字相关的,三者使用基本相同,但是更喜欢用for 3.while和do while可以做更复杂的判断条件,比for循环灵活一些;
4.do while先执行一次再判断 while是先判断再执行; 9.数组:就是一个储存很多数据的储存空间; 9-1.创建 var arr=[数据]; var arr=new Array(数据); 9-2数组下标从0开始 arr[i] 9-3 数组的长度arr.length;

 1.向数组末尾添加数据 arr.length=[数据];
 2.访问数组第N个:arr[arr.length-N];
 3.删除数组数据:arr.length=arr.length-N 删除数组第N个;
  4.如果索引号里面的数组元素有,会替换原来元素; 不能直接给数组名赋值,否则会覆盖所有的数据
 遍历数组
 for(var i =0;i<arr.length;i++){}
 拿到数组每一个;注意是小于数组的长度,因为数组角标从0开始;
 注意俩者比较的时候,可以赋值一个变量等于arr[0],后面循环开启的时候就是var i=1; 因为不用自己和自己比;

*DOM操作 document object model:文档对象模型,专门用来操作HTML(css)文档的; 1.树根 document JS会自动创建,每个元素/对象/节点都可以通过树根得到; 2.*查找元素 通过id名获取 var arr=document.getElementById("") 通过标签名获取 var arr=document/已经找到的父元素.getElementByTagName/ClassName("") 注意:1.找到的是一个类数组的集合,没找到,返回一个空集合; 2.找到的DOM集合是不允许直接操作的,可以遍历每一个元素或者下标找到某一个元素; 3、不一定要从document上找,可以通过找到的某一个父元素,可以只找这个父元素下面的元素; 还有可以通过关系查找; 父亲:elem.parentNode(返回的是一个值) 儿子:elem.children(返回的是一个集合,很多儿子) 第一个儿子:elem.firstElementChild; 最后一个儿子:elem.lastElementChild; 上一个兄弟:elem.previousElementSibling; 下一个兄弟:elem.nextElementSibling; 3.**操作元素
操作元素之前需要先找到这个元素,我们才可以操作元素的属性,内容,样式; 1.先看看属性 得到属性:elem.getAttribute("属性名");(目前学到用来得到自定义属性时,得到选项卡显示内容b绑定时,可以先自定义点击事件a,然后拿到赋值给显示内容b的下标) 设置/修改属性:elem.setAttribute("属性名","属性值"); 太麻烦了 omg 简化版 获取: elem.属性名;(获取不到自定义名) 修改: elem.属性名="属性名"; 2.操作一下内容 获取:elem.innerHTML/innerText/Value(为input准备的); 设置:elem.innerHTML/innerText/value="新内容" 3.操作一下样式 获取:elem.style.css属性名; 设置:elem.style.css属性名="css属性值"; 特殊:1.内联样式,不会牵一发动全身,优先级最高 2.css属性名:如果属性名带横线的要驼峰命名法;
3,获取时,只能获取到内联样式,获取不到样式表 4.添加class名是要写className;2015年后 改版;

绑定事件 在js绑定事件 elem.on事件名=function(){要做的操作} 要做的操作 this关键字:目前只能在这个事件中使用,是一个指针,不同的场景,指向不同; 计算器中的拓展知识点 eval(str) ex: elem.innerHTML=eval(elem.innerHTML);