javascript快速入门

标识符多了一个美元符号
python中只有字母和下划线和数字,数字不能开头
数据类型有number(整形和浮点型),boolean,string,null,undefined(声明未赋值),symbol(新引入),object类型(基本类型和特殊类型外的其他类型)

引入一个变量要先申明,
var a,
let b
常量类型,声明时定义,python中不存在
const c = 12
var 和 let 隐式表达了它的作用域,var默认全局,let默认代码块内部(大括号限定的区域,包括if,while,for语句)
但是如果声明在函数中var也只是函数中的作用域
let 定义在外部,{}和函数内部一样也可以调用
var相当于在python中的普通变量
let只是在块中才会限定作用域

var,let,const 对函数对象也会起作用
比如 var add = function (x,y){ return x+y }

不同类型的相加和短路运算符的类型转换
所有类型与字符串相加(可以交换)都是隐式转换为字符串
与数值形相加,布尔形相当于1或0参与相加, null相当于0处理,还可以相减
布尔形自身相加减也是相当于1或0加
undefined与其他类型相加减,返回NaN都是数值型,NaN是number类型的一个特值
null是object的一个空值

定义了名字的块,只能表示 enties的,分为key和value

for 语句
for (x in iters)
console(i) 打印对象的索引
for (x of iters)
console(x) 打印对象的值
经测试,使用他打印块字典对象的值有异常

函数:
函数的参数,函数对参数要求非常的低,默认位置参数,没有关键字传参,形参没有匹配的实参
默认为undified,多传参不会出错,收集参数(可变参数)…args要在形参的最后.
打印一个函数,python显示
<function abc at 0x0000020553CDF7B8>
js显示 [Function: abc]

ES6以前类的定义
function add(x,y){
this.x = x // –>用来构造实例的特征属性或方法
this.y = y
console.log(this) // –>公共执行的代码
let abs = x // –> 类的属性,所有实例都有的属性
}
打印一个 add 表示是一个函数,
执行普通调用 add(1,2)
实例化 ,使用new关键字 , a = new add(2,3), 调用的函数也可以叫做构造器
function addd(x,y,z){
add.call(this,x,y) //调用父类,调用后相当于继承,第一个参数需要给this,否则不能继承,后面的参数为,
this.z= z //传进的实参参数,他会被收集赋给父类函数,调用以后可以进行后续的调用父类的属性(只能调用实例属性或函数)
console.log(this.x,this,y,this,z)
}

新式ES6以后
class Point {
constructor(){ // 相当于init,初始化对象时默认运行,一般用来赋值this属性,可以接收参数
this.x = 1
this.y = 2
console.log(‘point’,this.x,this.y)
}
show(x,y){ // 使用类的对象调用,
console.log(x,y)
console.log(‘_point’)
this.z =3
}
}
p = new Point() 初始化
p.show(2,3) 调用非this属性的函数方法,如果this属性有相同名属性优先调用属性,而且要遵守调用它的格式
类的继承
class Point3d extends Point{
constructor (x,y) { //可以如果不写相当于调用了 constructor(){ super() }
super() //必须要写,如果要传参, 把实参写入,它将被按序收集
} // 父类的this属性可以被重写
//父类的函数子类的实例可以调用,也可以被重写
}

try/catch语句
try { //默认执行直到 throw对象,
console.log(‘try–‘)
throw ReferenceError(‘new error’); //throw的必须为一个对象(javascript不能理解一切皆对象),必须为基本
//throw console.log(‘–out’) //类型,或者object(函数,块,类),最后null也不识别
console.log(‘–out’)
}catch (error) {
console.log(‘—–‘)
console.log(error,typeof(error)) // 只会显示基本类型或者object
console.log(error.constructor) // 会显示具体类型
}

数组的解构 使用中括号和变量名解构,类似函数对参数的解构要求,支持可变参数,支持默认值

块字典的解构,要按照字典的键来解构,否则解构得到undefined
支持定义缺省值.支持收集参数,收集的值类型为object,且不需要有对应的键

数组的内建函数
arr.push(4,6,’fg’) 把参数添加进数组后面
arr.pop() 无参,弹出最后一个
newarr = arr.map(fn) 把数组的值依次作为参数放入fn中处理,获得的返回值组成一个新的数组
newarr = arr.filter(fn) 过滤数组返回一个新的数组
arr.forEach(function (e){ 把数组的元素依次放入函数中执行
if(e%2==0){
newarr.push(e)
}
else{
newarr.push(0)
}
})
console.log(newarr)

块字典的处理函数
Object.keys .values .entries
Object.assign() //将可以处理成键值对的都包装合并成一个块字典,后面的键会覆盖前面的同名的键和值

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91120

(0)
daishitongdaishitong
上一篇 2018-01-15 08:58
下一篇 2018-01-15 15:46

相关推荐

  • LAMP及nfs、samba的综合练习

    练习一: 配置第一台主机:服务端共享目录: [root@localhost /]# yum install nfs-utils [root@localhost /]# systemctl start rpcbind [root@localhost /]# sy…

    Linux干货 2016-10-24
  • 重定向和管道

    重定向和管道 今天一起来学习一下重定向的一些相关命令及用法: 我们都知道程序=指令+数据 ,那么我们的数据的输入(Input)和输出(Output)是如何实现的呢?!跟小编君一起来看一下吧: 本博文小编君分成了四部分:1.重定向的讲解 2.管道符的讲解 3.涉及到的一些其他命令 4.练习题 一:重定向 重定向的本质是改变文件的默认位置,即换个地方存储数据。 …

    2017-08-04
  • 第七周作业

    查看作业内容请移步此链接:http://www.cnblogs.com/wangenzhi/p/6403568.html

    Linux干货 2017-02-15
  • 流式传输的两大主流种类及流式传输特点

     流式传输定义很广泛,现在主要指通过网络传送媒体(如视频、音频)的技术总称。其特定含义为通过Internet 将影视节目传送到PC机。实现流式传输有两种方法:实时流式传输(Realtime streaming)和顺序流式传输(progressive streaming)。(百度百科)     在网络上传输音/视频(英文…

    Linux干货 2015-04-10
  • 虚拟机的三种网络模式

    前言     虚拟机的网络模式,是环境部署时的重要环节。不同的运行环境对网络的要求也是不用的,本章节重点介绍虚拟机的三种网络模式、以及他们之间的区别 虚拟机网络模式      无论是vmware,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2…

    2017-07-11
  • linux中扩展swap分区和移动设备使用挂载以及常用的工具free、df 、du、dd命令

    swap分区 swap分区作用:内存不足时充当系统内存,所以swap尽量放在告诉硬盘上也就是尽量使用磁盘的第一个分区 动手创建swap分区       1、创建分区,将分区类型转换成swap分区格式           &nbsp…

    Linux干货 2016-08-29