js学习笔记

[TOC]

JavaScript简介

JavaScript写在哪里

JavaScript基本语法及术语

var a,b,c,d;//声明变量
3.14//字面量
a='nick';//赋值
a=888;
b=2;
c=3;
d=b+c;//运算
//不可将变量名声明为保留字或关键字
var if

JavaScript中面向对象的概念

JavaScript变量

变量声明规范

js基础之变量运算

js基础之常见运算符

js中的真真假假

// 6个假变量
1. false (布尔值)
2. null (用于定义空的或者不存在的引用)
3. undefined (未定义值)
4. 0 (数字类型)
5. ""  ''  (空字符串)  (字符型)
6. NaN (not a Number)  (当其他类型转换为数值失败时返回此数值)
	//例如:parseInt('hahaha') //NaN  
var str = 'sss';
var str = 'aaa';//后面声明的变量会覆盖前面声明的变量
var a = 6;
console.log(str || a); // sss

js之调试

js基础之判断

js之三目运算

js之switch

js之for

js之while

js之零碎的干货

js之函数

js函数之形参和实参

js函数之声明的方法

js函数之返回值

js函数之变量作用域

js函数之隐藏的参数

通用编程思想之递归

function test(num = 1){
    console.log(num)
    num++
    return num < 10 ? test(num) : ''
}
test(1)

js函数之立即执行函数

//简单递归
function factorial(n){
    if(n <= 1){
        return 1
    } else {
        return n * factorial(n-1)
    }
}

js重点知识之闭包

js之对象

js对象之常规操作

对象中的方法怎么访问自己的属性

    var obj = {
        name: 'Nick',
        sayHello: function() {
            console.log(obj.name)
        }
    }

js中创建对象的几种方式

构造函数的参数应该怎么写

js底层剖析之new做了什么事

JS重难点之原型全面剖析

原型有什么用?

面试常考知识之原型链

function Car() {}
var car = new Car()
console.log(car)
console.log(Car.prototype)//构造函数有prototype
console.log(car.prototype)//实例化对象是没有prototype的
//原型链: 是有尽头的, 尽头是null
console.log(car.__proto__.__proto__.__proto__)//null
//  __proto__ 告诉你这是你一个内置属性, 不要对它进行任何更改

插件开发初体验—-写一个插件

JS重要数据结构之数组

JS数组基本操作

var nameList = ['张三', '李四', '王五']
//查
console.log(nameList[2])
//改
nameList[nameList.length - 1] = '666'
//增
nameList.push('lili')
nameList.unshift('lala')
//删
nameList.pop()
nameList.shift()

js之操作数组的常用方法

面试常考知识点之复杂类型怎么判断

js数组之小例题

//将String转换成数组, 并删除数组中的 jack
var str = 'nick,jack,张三,李四'
console.log(str.split(','))//split()方法使用指定的分隔符字符串将一个Stirng对象分割成子字符串数组
var list = str.split(',')
console.log(list.indexOf('jack'))//indexOf()方法会在数组中查找指定值,如果存在则返回对应下标, 不存在返回 -1 
var findIndex = list.indexOf('jack')
list.splice(findIndex, 1)//删除jack
//在排好序的数组中插入新数字
var numList = [23, 32, 45, 53, 62, 68]

function insert(arr, num) {
    for(var i = 0; i < arr.length; i++) {
        if(arr[i] > num) {
            arr.splice(i, 0, num)//在i位置删除0个元素并插入num
            console.log(arr)
            return 
        }
    }
}
insert(numList, 42)

上手企业开发必须的ajax

console.log(1)
//js, 有个执行队列的概念, 会等待主线程执行结束后, 才开始执行
setTimeout(function (params) {
    console.log(4)
}, 0)
console.log(2)   //1  2   4

js核心之DOM是什么

对DOM节点的创建、删除和插入

DOM核心之结合事件对DOM进行操作

深度剖析JS中事件的一些机制

js中的定时器

//案例
	//定时执行
var timer2 = setInterval(function() {
    
},200)
	//延时执行
var timer = setTimeout(function() {
    clearInterval(timer2)//清除定时执行
},2000)

JavaScript核心之Bom

BOM基础之BOM的概念及内置对象

BOM基础之js弹出框

无论哪种弹出框都会阻断程序运行

浏览器基本概念之Cookie

总结

解决问题思路

其他: 论坛如 csdn、stackoverflow(国外)