前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这是我的10分钟 js 入门笔记

这是我的10分钟 js 入门笔记

作者头像
double
发布2019-10-22 16:21:34
4720
发布2019-10-22 16:21:34
举报
文章被收录于专栏:算法channel算法channel算法channel

「Python与算法社区」 第 308 篇原创

JavaScript 快速入门

别问做算法和数据分析的,怎么还学js. 工作了需要啥都得学,还得快。这就是互联网,适者生存,劣者淘汰。

我在几年前接触过一些js,那时对this, that混用觉得很烦, promise用起来不是很清。不过,学习是一件奇怪的事,现在再看,发现对这些点又有了新的理解。

这是一个精简的小白入门js的课程总结

1 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服务器部署上。

2 核心语法

  1. 最好语句后加上分号
  2. 不区分整数和浮点数,都为Number,其他类型:字符串,布尔型,数组(元素类型不区分),map, set.
  3. xiaoming= {name: 'xiaoming', age:27} ,这是js中定义一个对象或者类的方法
  4. var 关键字表示是变量,类型待定,建议禁止省略
  5. if, while, for和 java一致
  6. 需要重点说明,函数是js中的头等公民,函数完全可以当变量用,抽象能力抽强。下面总结核心知识
  7. js中变量作用域,函数体内声明的变量只能在体内使用,不在任何一个函数体内的变量具有全局作用域。值得注意:函数体内声明的变量都会提到函数体的开头部分。
  8. js的全局变量,也无法逃出window变量,它才是全局的根变量
  9. 一个函数被绑定在对象内,就成为"方法" ,下面总结核心知识
  10. 如果A函数的参数也是函数,A函数就是高阶函数
  11. ES6新增的箭头函数,this作用域指向更加符合我们的预期
  12. 闭包和generator与python中的原理和用法很相似,新手直接认为一样就行
  13. js中常用的标准对象:Date, RegExp, Json

3 头等公民函数

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中的一个内置高阶函数

4 为什么说高阶函数是一种抽象?

高阶函数为什么说它是一种抽象?数组求和可以这么写:

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 的入门总结,希望对大家有帮助,说不定你以后工作也会用到哦。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JavaScript 快速入门
  • 1 js代码放哪里执行?
  • 2 核心语法
  • 3 头等公民函数
  • 4 为什么说高阶函数是一种抽象?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档