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)
上一篇 2018-01-15 08:58
下一篇 2018-01-15 15:46

相关推荐

  • shell脚本作业

    1、编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名, IPv4地址,操作系统版本,内核版本,CPU型号,内存大小,硬盘大小。 脚本代码 #!/bin/bash #author:wzc         echo Hostname:…

    Linux干货 2016-08-15
  • HA Cluster 之 vrrp (keepalived)

      HA Cluster 之 vrrp (keepalived) 0x00 前言 0x01 VRRP 协议 VRRP 简介 VRRP 工作原理 VRRP负载分担方式的特点 VRRP 中的一些术语 0x02 keepalived 功用: 0x03 keepalived 配置 HA Cluster 的配置前提: 配置文件组件部分: 配置文件解析: 附:…

    Linux干货 2017-05-16
  • corosync + pacemaker搭建高可用http

    一、实验图:    二、实验环境准备:  1)时间同步(172.16.2.15是时间服务器) [root@web1 ~]# crontab  -e   */5 * * * * /usr/sbin/ntpdate&nbsp…

    Linux干货 2015-06-30
  • linux进程管理及计划任务

    进程管理: 什么是进程?   在Linux系统当中:触法任何一个事件时,系统都会将它定义成为一个进程,并且给予这个进程一个ID,称为PID,同时依据触发这个进程的用户与相关属性关系,给予这个PID一组有效的权限设置。 进程与程序: 程序(program):通常为二进制程序放置在存储媒介中,以物理文件的形式存在。 进程(process):程序被触发后…

    Linux干货 2016-09-13
  • N22-第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。 5、取出当前主机的…

    Linux干货 2016-08-29