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

相关推荐

  • Linux终端类型

      终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。   在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:   1、串行端口终端 /dev/ttySn     串行端口终端是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个…

    Linux干货 2016-10-14
  • Nginx工作原理和优化、漏洞。

    1.  Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(location是Nginx配置中的一个指令,用于URL匹配),而在这个location中所配置的每个指令将会启动不同的模块去完成相应的工作。 Nginx的模块…

    Linux干货 2015-04-04
  • haproxy负载均衡两个后端httpd和mysql

    前端主机:172.16.71.1,后端主机:172.16.71.4和172.16.71.5 前端主机安装haproxy yum install haproxyvim /etc/haproxy/haproxy.cfgglobal    log         127.0.0.1 local2 &nbs…

    Linux干货 2017-02-12
  • Unix发展与现状

    Unix 简史 1965年时,贝尔实验室(Bell Labs)加入一项由奇异电子(General Electric)和麻省理工学院(MIT)合作的计划;该计划要建立一套多使用者、多任务、多层次(multi-user、multi- processor、multi-level)的MULTICS操作系统。直到1969年,因MULTICS计划的工作进度太慢,该计划就…

    Linux干货 2015-09-22
  • CentOS 6启动过程总结与GRUB问题修复

    一、CentOS 6 的启动流程 第一步:加电自检(POST) 主要检查硬件设备是否存在并能正常运行,如:CPU、内存、硬盘、风扇、输入输出设备等。自检功能主要是通过BIOS来实现的,BIOS程序是装载在一个硬件芯片CMOS上的,加电过程就是给CMOS通电,然后启动BIOS程序,BIOS程序会根据CMOS上面的一些配置信息区读取其他的硬件设备信息并检测其是否…

    Linux干货 2016-09-16
  • 私人定制—linux系统

    自制Linux系统: 1、分区并创建文件系统 [root@localhost6 ~]# fdisk  /dev/sdb 分两个必要的分区 /dev/sdb1对应/boot /dev/sdb2对应根/ 创建文件系统: [root@localhost6 ~]# mkfs.ext4 /dev/s…

    Linux干货 2016-09-26