「Python与算法社区」 第 308 篇原创
别问做算法和数据分析的,怎么还学js. 工作了需要啥都得学,还得快。这就是互联网,适者生存,劣者淘汰。
我在几年前接触过一些js,那时对this, that混用觉得很烦, promise用起来不是很清。不过,学习是一件奇怪的事,现在再看,发现对这些点又有了新的理解。
这是一个精简的小白入门js的课程总结
js代码可以直接嵌套在html中,通常部署在head中:
<head>
<script>
alert('Hello, world');
</script>
</head>
js的代码末尾可不加分号,但是最好加上,这样chrome内核解析时不会出现意味错误。
当js代码变长时,直接放在head中,会很臃肿,也不符合模块要分离的要求,维护不方便。单独放到一个.js文件中会很好,然后通过 <script src="/static/js/jquery-min.js"></script>
引入这个文件。
一个最简单的例子,我的demo.js文件:
function demoFun(){
alert('hello world')
}
demoFun();
我的html文件,使用script标签的src属性引用demo.js文件。
<html>
<head>
<script src="demo.js"></script>
</head>
<body>
...
</body>
</html>
编写js代码的IDE,推荐 vs code. 完成一个Html后,立即可以放入浏览器执行。如果html涉及到联网等,需要一个web服务器部署上。
function关键字指明是一个函数,
function getReluResult(){
if(this.inputval<0){
return 0.;
}
else{
return this.inputval;
}
}
让getReluResult成为方法,
var rnn ={
name:'rnn object',
inputval: -1.32,
relu:getReluResult
}
这样relu 立即称为rnn对象的方法,调用:
rnn.relu()
reduce高阶函数,
var lis = [1,4,-9,3,6,5-3];
lis.reduce((x,y)=> x+y);//reduce是js中的一个内置高阶函数
高阶函数为什么说它是一种抽象?数组求和可以这么写:
function sum(list){
var ret = 0.;
for(var i=0; i<list.length;i++){
ret+=list[i];
}
return ret;
}
但是,如果求连乘积呢?可能你又得写一个函数,无法复用sum这种框架,如果抽象出f 函数,作为这个框架的参数,情况可能好些,
function myreduce(f,list){
if(list.length<2){
return 'length < 2';
}
var temp = f(list[0],list[1])
for(var i=2; i<list.length;i++){
temp = f(temp,list[i]);
}
return temp;
}
这么调用:
myreduce((x,y)=>x+y, list); //求和
myreduce((x,y)=>x*y, list); //求乘积
你看,无论怎么操作,我们都能套用myreduce这个函数框架,只需抽象出一个函数f 作为其参数。
以上就是一些 javascript 的入门总结,希望对大家有帮助,说不定你以后工作也会用到哦。