【原生】---回忆---思维***链接---知识点回顾及思考

***

1、什么是javascript ?
2、常量和变量
3、标识符的命名规范    驼峰式  匈牙利
4、类型
基本类型  字符  数值  布尔
引用类型 object
特殊类型 :   undefined  null
5、运算符和表达式
算术
一元 ++  --
i++ 和 ++i 区别 :
二元 +  100+"90"   100-"90"
赋值 =  +=
关系   ==  ===
条件 ?  :
逻辑 &&  ||  !

---

短路现象 : 真 || 不执行        假 && 不执行
类型转换 : 自动转换 isNaN("23")     强制转换
选择结构
if
if else if
switch

----

三大结构
顺序结构
    运算符和表达式
    五类
选择结构
    控制语句 :
    if else
    switch
循环结构
    for
    while
    do..while
    break 和 continue 

---

1、函数
2、函数定义
function 函数名(){ .... }
var fn = function(){...}
3、 函数参数
4、返回值 

---

运算符和表达式
算术
关系 :主要应用与布尔环境 (表示判断  if()   while()   )
逻辑 : 与关系连用
条件 : ?  :    布尔环境
赋值 :  =  

选择结构
if  switch()

循环结构 :
    while
    do..while
    for
     break 和 continue
函数:
    函数参数
    函数返回值
    作用域 :
        全局和局部
    function fn(num){
        num = 90;
    }
    fn()
    alert( num )

    alert( fn )
    var fn = 90;
    function fn(){ ... }
    函数和事件的关系

-----

对象 :
对象类型和基本类型区别 :
    对象中存的数据是批量的    基本类型存一个数据
    传值时 :对象传地址   基本类型传数值
    对象类型都有属性和方法  而基本类型没有属性和方法
构造函数 : Array  Object
数组 :
定义方式 :
    var arr = []
    var arr = new Array()
数组遍历 :
    for..in
数组的操作方法 :
    push pop  shift unshift splice
    reverse()
    join()  concat()      slice()
栈和堆 :

---

去重算法 : 定义一个空数组  判断原数组中的某个数在空数组中是否存在  不存在就存入到空数组中
排序算法 : 冒泡 和 选择  sort(function(a,b){}) 排序方法
严格模式 :  "use strict"
数组的扩展方法 :
    forEach  map   indexOf  filter reduce   some  every
字符串操作方法:
查 : charAt  charCodeAt  String.fromCharCode
拆 : split()
转 : toLowerCase()  upper
替 : replace()
截 : substr  substring slice
复制 : repeat
连接 :concat
去两边空格 :trim arr.forEach(function(item,index,array){  操作内容 } )

arr.filter(function(item,index,array){  操作内容   })

  

arr.map(function(item,index,array){

})

 

reduce()   归并


arr.reduce(function(pre,next){


pre 表示上一次操作返回的结果  如果第二个参数有数据,prev的初始值为第二个参数


next 表示 下一个数  next 表示数组中的每一个数据


},第二个参数)

 

---

1、数学对象
获取任意区间的随机整数值
Math.round( Math.random()*(max-min) + min );
2、日期对象
日期定义 :
当前系统时间   new Date(  )
自定义时间  new Date( "" )

获取时间 :get....
时间差 :
 getTime()
时间格式的设置 :
设置3天后的时间
var now = new Date();
now.setDate( now .getDate() + 3 );   setDate() 改变原来的时间
alert( now );

定时器 : 让时间动起来

---

BOM对象模型:
浏览器对象模型
window--location  document  history  navigator  screen
window对象常见的方法 :
两个定时器 : setInterval  setTimeout
open()
window对象特点 :
location对象
document对象 :
操作样式、属性、内容
非行内样式值获取 :getComputedStyle    .style.样式

---

1、内置对象
Array
    数组的操作方法 :
        push  pop   shift unshift   splice  slice  reverse   concat  join  sort
        扩展方法 : forEach  map  filter   indexOf  reduce
    数组去重
    数组排序
String
    操作方法 :
        charAt  charCodeAt   String.fromCharCode
        indexOf   lastIndexOf
        substr  substring slice
        concat
        toLowerCase  toUpperCase
        split 

Math :
    随机整数获取
    取整方法 :ceil floor round
Date
    日期定义  获取日期  设置日期时间格式

BOM  和 DOM
BOM :浏览器对象模型 window --- location  history  document  navigator screen
window对象的特点 : setTimeout  setInterval   open()    alert confirm  prompt
document对象 :  

DOM :  文档对象模型
DOM操作:
增
    createElement
    appendChild   insertBefore
删
    remove   removeChild
改
    改样式
        obj.style.样式
        obj.className
        obj.style.cssText = "color:red";
    改属性
        非自定义属性:  obj.属性
        自定义属性  : obj.getAttribute() / setAttribute()
    改内容
        obj.innerHTML / innerText / value
查
    获取元素方法
    getElementBy....
    querySelector...

---

1、事件对象
2、对象的定义 : e || event
3、兼容
4、鼠标事件对象属性  坐标属性
pageX/Y
clientX/Y    x/y
offsetX/Y
screenX/Y
5、button
6、获取键盘按键值  keyCode  || which
功能键 :
7、事件流 :
冒泡
捕获
8、事件监听 addEventListener   onclick 区别

---

1、事件委托
好处 : 提高程序执行效率  动态添加元素添加事件
2、实现 : 事件源获取、判断
3、offset家族属性 :
   offsetWidth/height
    clientWidth / height
    获取实际宽度 : 对象.style.width   非行内 :
offsetLeft/offsetTop
4、json
对象.键     [键]
for..in 遍历json

5、onmouseenter 和 onmouseover
6、onload    

--


1、事件


事件对象的创建


事件中的兼容 :  事件   事件冒泡  取消浏览器的默认行为....


事件冒泡和事件捕获 :


事件的三个过程 :事件捕获  事件目标阶段  冒泡


事件监听:


事件委托:


鼠标事件对象的坐标属性 :offsetX


2、json


定义 {  }


取值 json[""] json.键


3、拖拽


onmousedown  onmousemove   onmouseup



4、正则


单字符 .   \   |   ^    $       组合  \d    \D    \w  \s    量词 +  ? *   括号 {}   []  ()

 

---

正则中的几个操作方法:
test()    exec()  正则的方法  可以操作正则

可以操作正则的字符串方法:
search   match  replace 

es6中的常见语法格式 :
let  块级作用域
const 定以后值不可以改变

改变this指向 : apply  call  bind

for...of  

字符串模板  ``

箭头函数    不支持bind    

解构赋值   

set集合   自动去重
map集合

class定义的构造函数

Symbol类型   generator函数   *

Array.from()    Array.of()    Object.assign()
 

---

事件对象:
鼠标事件对象的属性:
e.offsetX offsetY
pageX/clientX
兼容问题 :
    事件对象创建 :  e || event
    阻止事件冒泡
    阻止浏览器的默认行为 preventDefault
    事件源获取 : target || srcElement
    键盘按键值 : keyCode || which
事件冒泡和事件捕获
事件监听 addEventListener  和 不同添加事件
addEventListener("click") 和 obj.onclick = function(){}  区别:
事件委托

json对象:定义和获取

拖拽 :

scroll家族属性: 获取页面滚走距离
document.documentElement.scrollTop || document.body.scrollTop
或者
widnow.scrollY
offset家族属性 :
obj.offsetLeft/offsetTop/Width/Height
正则:
定义 :
var reg = /^$/  或 var reg = new RegExp("\\w",修饰符"ig");
特殊字符 :
.   \   |    ^ $  + ....
下面哪些是正则对象的方法 :test   exec
可以操作正则 :  test   exec   replace seach  match

es6:
   let 块级作用域 {  }
   const 常量定义的关键字,如果变量在执行的过程中不会发生变化,也可以使用const    const btn = document.getElementById()
   箭头函数
   解构赋值
    改变this指向的方法:
    将伪数组转数组:
dom操作高级
    匀速--缓冲--多物体--链式--完美
    var timer = null;
    function move(obj,json,cb){
        clearInterval( obj.timer )
        obj.timer = setInterval( ()=>{
          var flag = true;
          for( var attr in json ){
            var current = parseInt( getStyle( obj,attr ) );
            //判断透明度
            var speed = (json[attr]- current)/10;
            speed = speed > 0 ? Math.ceil( speed ) : Math.floor(speed);
            if( json[attr]!= current ){
                   flag = false;
            } 

            //判断透明度
             obj.style[attr] = current + speed + "px"
        }
        },30 )

        if(flag){
            clearInterval(obj.timer);
                    if( cb ){
                        cb();

                    }
        }
    }

    //获取一个元素实际样式值
    function getStyle(obj,attr){

    }
    

16

原文地址:https://www.cnblogs.com/yuanjili666/p/11350441.html

时间: 2024-11-10 13:16:04

【原生】---回忆---思维***链接---知识点回顾及思考的相关文章

训练创新思维的方法:曼陀罗思考法

回顾10多年来走过的软件之路除了在经验上有一点积累.掌握了不少的技术之外似乎仍然一无所有,我并不是在传播负能量,这种一无所有指的并不是物质或是生活上的,而是在事业道路上.软件发展在于创新而这么多年来的工作却一直只是在跟随,自己意淫一下觉得比别人好的也只不过是跟随的速度会比较认识的人快那么一点点,时光推移到底什么东西是完全属于自己的呢 ?我也曾与不少至友讨论此问题,貌似也让大家陷入一些思考中.我们不缺技术.也不缺乏经验缺的可能是一种思想和意识那就是“持续创新的思维”.以前总认为自己在这方面是缺根筋

面试前的准备---C#知识点回顾----03

经过一天的奔波,喜忧参半,不细表 再回看下标题,C#知识点回顾 再看下内容,数据库3NF 原谅我这个标题党 今天继续回忆 1.HTTP中Post和Get区别 这忒简单了吧,大家是不是感觉到兴奋了,长舒一口气了,终于出现了一个可以聊上10分钟的问题了. 根据HTTP规范,Get用于信息获取,而且应该是安全的和幂等的. 参数在URL后,以?分割,以&相连. 根据HTTP规范,Post表示可能修改服务器的资源请求.数据存在HTTP包中 以上最基本的得知道吧,重点可以聊的出现了,安全性. 详细请拜读:h

非计算机类专业毕业生五年程序员职业生涯的回顾和思考

0.前言看到过几篇程序员的职业生涯过程,我也来当一回写手吧,希望对和我一样曾经磕磕碰碰过的人有帮助.谨以此文纪念大学毕业五周年,传播一些正能量. 1.从校园启程我的大学专业全称是无机非金属材料工程,这专业多与玻璃.水泥.陶瓷打交道,高大上一点的是各种珠宝,前沿一点的是纳米材料.想先声明的是,我不是在黑自己的专业,只是每个人都会有自己喜欢和适合自己的工作和生活状态.我尝试过为了完成一个程序而废寝忘食后就爱上了这个职业,即使知道这是个加班如家常便饭的工作也义无反顾.而且后来我发现材料工程的学习经历并

Spring知识点回顾(01)

Spring知识点回顾(01) 一.依赖注入 1.声明Bean的注解 @Component @Service @Repository @Controller 2.注入Bean的注解 @Autowired @Inject @Resource 二.加载Bean 1.xml方式 - applicationcontext.xml : Beans, Bean, Component-Scan 2.注解方式 - @Configuration,@ComponentScan,@Bean 用@Configurati

面向对象【day07】:多态-面向对象使用场景--知识点回顾

本节内容 多态 面向对象使用场景 知识点回顾 一.多态 一.概述 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作.简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针. 那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化:继承可以扩展已存在的代码模块(类):它们的目的都是为了--代码重用.而多态则是为了实现另一个目的--接口重用!多态的作用,就是为了

PHP面向对象关键知识点回顾

一,类中的析构函数(__destruct): 析构函数是自动调用的 析构函数主要用于销毁资源 析构函数的调用顺序是先创建的对象最后被销毁(原理是栈的先进后出) 析构函数什么时候被调用 (1)当程序(进程结束)推出时 (2)当一个对象成为垃圾对象时候,该对象的析构方法也会被调用 (3)所谓垃圾对象,就是指没有任何变量再引用它(没有变量再只指向堆中的对象) (4)一旦对象成为垃圾对象,析构函数就会立即被调用 二,类中使用静态变量(static) 静态变量的引入是为了解决不同的对象实例能够共享同一个变

面向对象知识点回顾整理

目录 面向对象知识点回顾整理 一.面向对象基础 1.类和对象 2.属性查找: 3.绑定方法: 4.对象之间的交互: 5.类的内置属性 6.三大特性:继承.多态.封装 二.面向对象高阶 元类 单例模式 面向对象知识点回顾整理 一.面向对象基础 面向对象编程的核心是对象二字,对象是属性与方法的结合体,python中一切皆对象. 优点:可扩展性强 缺点:编程的复杂度高 1.类和对象 对象:属性和方法的结合体 类:一堆属性和方法的结合体 python中是先有类再有对象,现实生活中是先有对象再有类 类名(

如何开发原生的 JavaScript 插件(知识点+写法)

一.前言 通过 "WWW" 原则我们来了解 JavaScript 插件这个东西 第一个 W "What" -- 是什么?什么是插件,我就不照搬书本上的抽象概念了,我个人简单理解就是,能方便实现某个功能的扩展工具.(下面我会通过简单的例子来帮助读者理解) 第二个 W "Why" -- 为什么? 为什么要有插件这种东西,首先结合第一个 W 来理解就是,使用插件的目的是方便我们实现某一个功能. 也就是说在编程过程中我们只需要找轮子,或者改轮子而不需要重

年近30------职业回顾与思考

我是一名普通的二本院校毕业的学生,专业是电子信息工程,毕业时间是2012年.得益于大学时代对电子信息技术的极大兴趣,外加自己足够的付出,大学期间获得了全国大学生电子设计大赛一等奖,飞思卡尔的全国二等奖,当时有同学告诉我有这个奖项将来工作就不愁了,可那时心里从来没有把得奖与工作建立起关系. 学校: 回顾大学的时光,主要被3样事情占据,谈恋爱.打游戏.泡实验室.谈恋爱是大一开始的,现在很庆幸大一就开始恋爱了,恋爱让我的人生走在了一条普通而可预见的轨迹,大学恋爱,毕业后两年结婚,一年后生子.我想如果没