机器学习算法之朴素贝叶斯
Naive Bayes中文朴素贝叶斯,是概率学中最为普遍的分类算法,本文主要介绍贝叶斯的起源、原理、公式和实际应用。
不定期更新,整理那些比较垃圾的 JavaScript 面试题,让面试官无法装逼,仅此而已。
function Foo() {
getName = function () { console.log(1) }
return this
}
Foo.getName = function () { console.log(2) }
Foo.prototype.getName = function () { console.log(3) }
var getName = function () { console.log(4) }
function getName() { console.log(5) }
// 求输出结果
Foo.getName()
getName()
Foo().getName()
getName()
new Foo.getName()
new Foo().getName()
new new Foo().getName()
// 分割线 ---------------------------------------------
// 上面代码基本等同于
function getName() { console.log(5) }
function Foo() {
getName = function () { console.log(1) }
return this
}
Foo.getName = function () { console.log(2) }
Foo.prototype.getName = function () { console.log(3) }
getName = function () { console.log(4) }
// 执行过程
// Foo的静态属性
Foo.getName()
// 全局getName函数
getName()
// 未实例化,this指向window,window中的getName,即全局getName
Foo().getName()
// 全局getName,但由于Foo执行后全局的getName被重新赋值
getName()
// 只是实例了一个子函数,没什么异样
new Foo.getName()
// 实例化类,并执行原型上的方法
new Foo().getName()
// 将原型上的方法再实例一次
new new Foo().getName()
for(var i = 0; i < 5; i++) {
console.log(i)
}
// 0 1 2 3 4
for(var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i)
}, 1000 * i)
}
// 立即打印一个5,每隔一秒一个5
for(var i = 0; i < 5; i++) {
(function(i) {
setTimeout(function() {
console.log(i)
}, i * 1000)
})(i)
}
// 0,+1s 1 +1s 2 +1s 3 +1s 4
for(var i = 0; i < 5; i++) {
(function() {
setTimeout(function() {
console.log(i)
}, i * 1000)
})(i)
}
// 立即打印一个5,每隔一秒一个5(实际上闭包内没有形参,有的话就正常了)
for(var i = 0; i < 5; i++) {
setTimeout((function(i) {
console.log(i)
})(i), i * 1000)
}
// 0,1,2,3,4 同时定时器失效,因为函数体没return有效函数
setTimeout(function() {
console.log(1)
}, 0)
new Promise(function executor(resolve) {
console.log(2)
for( var i = 0; i < 10000; i++ ) {
i == 9999 && resolve()
}
console.log(3)
}).then(function() {
console.log(4)
})
console.log(5)
// 输出,执行顺序:同步 => 同步 => 同步 => 异步队列(Promise) => 异步队列(定时器)
// 2 3 5 4 1
function fn() {
return 20
}
console.log(fn + 10)
function fn() {
return 20
}
fn.toString = function() {
return 10
}
console.log(fn + 10)
function fn() {
return 20
}
fn.toString = function() {
return 10
}
fn.valueOf = function() {
return 5
}
console.log(fn + 10)
//函数节流
const throttle = (fun, delay) => {
let last = null
return () => {
const now = + new Date()
if (now - last > delay) {
fun()
last = now
}
}
}
//实例
const throttleExample = throttle(() => console.log(1), 1000)
//调用
throttleExample()
throttleExample()
throttleExample()
//函数防抖
cosnt debouce = (fun, delay) => {
let timer = null
return () => {
clearTimeout(timer)
timer = setTimeout(() => {
fun()
}, delay)
}
}
//实例
const debouceExample = debouce(() => console.log(1), 1000)
//调用
debouceExample()
debouceExample()
debouceExample()
未完也不续了。
给你打call~
很有意思的题目,收益了许多~ 感谢博主
套总,你的缩略图都是从哪里找的?😵
回复:
Google啊,侵权啦?🌚
回复:
没有,我只是好奇😜