js学习笔记记载一篇(非0基础)(基础篇)

今天比昨天有进步,明天比今天更优秀!共勉 || 使用XMind制作思维导图 || 查询资料在Mdn(较权威)查询

成年人的浪漫就是情谊和体面

学习路线:基础 -- 应用 -- 进阶【javaScript基础-5天 => webApi - 7天 => javaScript进阶-4天】

使用vsCode作为工具,代码编写错误提示插件:Error lens

  1. js基础 (变量、常量、数据类型[数组]、数据类型转换、算数运算符、对象、案例)

  1. js简介:javascript(简写js)是一门运行在客户端(浏览器)的编程语言,实现人机交互。html/css是标记语言,不是编程语言

  1. js构成:javascript遵循ECMAScript语法基础 && WebApis; WebApis又由两部分组成:DOM && BOM

  1. DOM:操作文档

  1. BOM:操作浏览器

  1. js书写位置:

  1. 【内部js】:写在</body>的上面; <script>...</script>

  1. 【外部js】:写在</body>的上面; <script src="js文件相对路径(*.js)"></script>

  1. 【内联js: VUE会用这种模式,js不多用】<body><button onlick="alter('嘿嘿嘿')">请点击我</button></body>

  1. 输入输出语法:

  1. 弹窗输出:alert || window.alert

  1. 页面输出:document.write("汉字||标签") 【document.write("<h1>我是一级标题</h1>")】

  1. 控制台打印输出:console.log('') -- 程序员调试使用

  1. 输入:prompt("请输入您的姓名")

  1. 变量

  1. 定义:变量是一个装东西的容器,它不是数据本身

  1. 变量关键字:let ,var已经被let取代了,var成为了过去式

  1. 变量的本质:在内存中开辟一个小空间来存储数据

  1. 常量: const

  1. 数据类型(js是弱类型语言)--基本数据类型【算数运算符】 || 引用数据类型

  1. 基本数据类型:boolean/number/string/undefined/null

  1. 引用数据类型:数组/对象object/函数function()

  1. 数组

  1. 操作-新增:

arr.push('','') /*推末尾,返回的是数组的长度*/

arr.unshift('','') /*追加开头,返回的是数组的长度*/

  1. 操作-删除:

arr.pop() /*删末尾*/

arr.shift() /*删开头*/

arr.splice(start,删几个数据) /*起始位置,起始位置从0开始,删几个数据*/

  1. 检测数据类型typeof

  1. 数据类型转换【隐式转换||强类型转换】

  1. 隐式转换: 某些运算符被执行时,系统内部自动转换数据类型,这种被称为数据类型转换

  1. 只要“+”的两边有一边为字符串,就会把另一个自动转换为字符串类型

  1. 除去“+”以外的算数运算符,都会把数据自动转换为数字类型

  1. “+”作为正号解析可以将数据转化为数据类型,例console.log(+'123') --> 数字123

  1. null经过数字转换以后会变为0,

  1. undefined经过数字转换以后会变为NaN

  1. -减号只用于数据类型,他会将空字符串转化为0

  1. 强类型转换

  1. number: 转换为数字数据类型--number(变量) || +'123' || +prompt("请输入你的薪资"),NaN也是数字类型,代表非数据类型【+在这里也可以完成数字类型,但是它属于隐式转换】

  1. parseInt: 只保留整数(数据类型)

  1. parseFloat: 可以保留小数(数据类型)

  1. boolean数据类型转换

  1. ''/null/undefined/false/NaN/0 转换为boolean都是false,其他的都是true

  1. boolean("pink") ==>true

  1. 运算符

  1. 算数运算符 + - * / %

  1. 比较运算符 < > <= >= == != === 【==要求值相等, === 要求值和数据类型都相等】

  1. 逻辑运算符

  1. 图形:柱状图、折线图...

  1. echarts:是一款javascript可视化图表库,兼容当前绝大部分浏览器

  1. 冒泡排序 == arr.sort()

  1. 升序:arr.sort(function(a,b){return a-b})

  1. 降序:arr.sort(function(a,b){return b-a})

  1. 函数

  1. function(){} //参数不需要明确标明数据类型,js是弱语言类型,给他什么类型的数据,他就会自动变成什么类型

  1. 具名函数、匿名函数

  1. 具名函数:function fn(x,y){}

  1. 匿名函数:function(){} ; let fn = function(x,y){}

  1. 立即执行函数:

  1. (function(){})() || (function(){}()); --防止变量污染,例: (function(x,y){console.log(x+y)})(1,2);

  1. 与立即执行相关的面试题

            <body>
                <ul id="list">
                    <li>公司简介</li>
                    <li>联系我们</li>
                    <li>营销网络</li>
                </ul>
                <script>
                   var list = document.getElementById("list");
                  var li = list.children;
                  for(var i = 0 ;i<li.length;i++){
                    li[i].onclick=function(){
                      alert(i);  // 结果总是3.而不是0,1,2
                    }
                  }
                 </script>  
            </body>
            为什么alert总是3? 因为i是贯穿整个作用域的,而不是给每一个li分配一个i,点击事件使异步,用户一定是在for运行完了以后,才点击,此时i已经变成3了。
            那么怎么解决这个问题呢,可以用立即执行函数,给每个li创建一个独立的作用域,在立即执行函数执行的时候,i的值从0到2,对应三个立即执行函数,这3个立即执行函数里边的j分别是0,1,2所以就能正常输出了,看下边例子:
            <body>
                <ul id="list">
                    <li>公司简介</li>
                    <li>联系我们</li>
                    <li>营销网络</li>
                </ul>
                <script>
                   var list = document.getElementById("list");
                  var li = list.children;
                  for(var i = 0 ;i<li.length;i++){
                   ( function(j){
                        li[j].onclick = function(){
                          alert(j);
                      })(i); 把实参i赋值给形参j
                    }
                  }
                 </script>  
            </body>
  1. 逻辑中断

  1. x = 1 || 0 x = 1 && 0

  1. undefined 等价于 false

  1. 对象

  1. 对象是一个无序的数据类型

  1. 对象的创建let obj = {} || let obj = new object()

  1. 增删改查

  1. 查:对象.属性

  1. 改:就是重新赋值-对象.属性 = 新值

  1. 增:对象.新属性=新值

  1. 删:delete 对象.属性

  1. 方法:song : function(){}

  1. 对象的遍历for(let k in 对象){console.log(对象[k])}

  1. 数学内置对象:math

  1. math.random() //[0,1)

  1. math.pi()

  1. math.ceil() //向上取整

  1. math.floor() //向下取整

  1. math.abs() //取绝对值

  1. math.round() //四舍五入

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值