JavaScript学习笔记

变量、函数的声明会自动提到头部。赋值的不算。
this指window、global,new的时候就是全新构造的?
apply和call模式可以指定this的对象。

基础部分

  • 传递:JS中没有传值,只有传引用。
  • 字符串:字符串的变量值不可更改==?==
    parseInt() 函数可解析一个字符串,并返回一个整数。
  • 布尔值:任何值都可以是Boolean值:除0,0.0,NaN,null,undefined,“”之外的值,都是真
  • 特殊值:NaN:not a number undefined:没有声母,不存在 null:存在,但是赋予空值
  • 逻辑符号:会自动转换数据类型,例如5<"7"为真,42==42.0为真。严等符号===和!==则还会检查数据类型,例如"5.0"===5则是假。
  • 全局变量:函数外声明的,和函数内没有用var声明的变量。慎用全局变量。
  • 局部变量:函数内用var声明的变量。
  • 作用域:以函数做分界线,而不是用{}块做分界线。
  • 数组:数组大小可以自动增长,数据类型可以不同。
    赋值方法有两种:a2.push()方法和a2[100]=“Yeah”。
    常用方法:
常用方法效果
push(value) ,push(v1,v2,v3)将一到多个值压入数组
pop()弹出数组
reverse()反序
sort()排序
shift()取头部,并向前移动
unshift()添头部,并往后移
contact(array1,…,arrayN)将多个数组拼接为一个
join(),join("!")将数组以"!"为分隔符拼接成一个字符串
slice(a,b),slice(a)返回从a到b(省略b则默认数字长度)的子数组
splice(index,count,v1,…,vN)将数组从index起count个元素删除,并更换为v1,…,vN
split(),split("!")将字符串按分隔符("!")拆为一个数组

DOM

DOM style property:可以用来在函数中改变网页外观,注意单位。非侵入式用法:定义一个未使用的CSS样式,将样式的className赋予html元素。
在这里插入图片描述

NODE:一切皆是节点,通过节点操控网页

节点类型指代
文档节点整个文档
元素节点每个 HTML 元素
文本节点HTML 元素内的文本
属性节点每个 HTML 属性
注释节点注释
常用属性含义
innerHTML节点(元素)的文本值,例如<div>内的<p>,<p>中的文本
parentNode节点(元素)的父节点
childNodes节点(元素)的子节点
attributes节点(元素)的属性节点
nextSibling下一个同胞节点
nodeName只读,元素节点、属性节点的 nodeName 与属性名相同,
文本节点的 nodeName 始终是 #text,
文档节点的 nodeName 始终是 #document。
nodeValue元素节点的 nodeValue 是 undefined 或 null,
文本节点的 nodeValue 是文本本身,
属性节点的 nodeValue 是属性值。
常用方法描述
getElementById()返回带有指定 ID 的元素。
getElementsByTagName()返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。
getElementsByClassName()返回包含带有指定类名的所有元素的节点列表。
appendChild()把新的子节点添加到指定节点。
removeChild()删除子节点。
replaceChild()替换子节点。
insertBefore()在指定的子节点前面插入新的子节点。
createAttribute()创建属性节点。
createElement()创建元素节点。
createTextNode()创建文本节点。
getAttribute()返回指定的属性值。
setAttribute()把指定属性设置或修改为指定的值。

EVENT:给html添加事件有三种方法,推荐第三种

添加事件的三种方法
event.target——发生事件的html对象
在这里插入图片描述
在这里插入图片描述

常用事件在这里插入图片描述
在这里插入图片描述

TIMER:计时器有两种

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
传递参数的方法
传递参数的方法

非侵入式代码

在js中给id为“ok”的html元素赋予click的事件
在这里插入图片描述
存在问题:在页面未加载完毕,就会调用并声明js,会出现没找到id为“ok”的情况。故应该把这些给html元素赋予事件的声明,放进window.onload的函数中,如下所示。不妨把所有声明先放进**pageLoad()**函数中,然后由window.onload()调用。
在这里插入图片描述
常见错误:1、不需要写()的地方。2、事件名称不需要大写。
在这里插入图片描述

动态对象

对象是带有属性和方法的特殊数据类型。
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数…
此外,JavaScript 允许自定义对象,如下图用名值对的形式创建对象。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建函数对象

function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;
}

给对象添加函数属性

function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;

    this.changeName=changeName;
    function changeName(name)
    {
        this.lastname=name;
    }
}

Prototype原型:所有的 JavaScript 对象都会从一个原型对象中继承属性和方法。

给函数对象添加属性,必须在如上的构造子中添加。否则就要用到原型属性,跟C++类的继承相似。

function Person(first, last, age, eyecolor) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
  this.eyeColor = eyecolor;
}
 
Person.prototype.nationality = "English";

闭包

闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。
貌似是什么嵌套的内部函数访问外部函数的局部变量,我的理解是一个函数加一个“全局”变量形成闭包,再在最外层套上一个函数,形成闭包环境,返回内部函数,保护“全局”变量。

var add = (function () {
    var counter = 0;
    return function () {return counter += 1;}
})();
 
add();
add();
add();
 
// 计数器为 3

JQuery、lodash和moment

JQuery教程:动画相关 $ 符号
lodash入门:数据相关 _ 符号
moment:日期相关 moment()

JSON

JavaScript 对象表示法,JSON 是存储和交换文本信息的语法。

Node.js

Node.js就是运行在服务端的 JavaScript

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值