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

相关推荐

  • mysql备份还原

    一、前言 数据对于一个公司来说有多重要这点不说大家也知道,数据还在,服务崩溃还可重建。为什么要备份?很简单,天灾人祸。比如硬件故障,软件故障,自然灾害,黑客攻击或自身误操作等因素。这时候备份,恢复数据就显得至关重要了。 二、基础概念 由于备份与恢复需要用到一些必要的知识,故在此先讲解下 2.1二进制日志 myql日志有多种,其中二进制日志文件对数据恢复有很大…

    Linux干货 2015-11-30
  • Find命令以及解压与压缩文件的相关指令

    1,find   实时查找,通过遍历指定路径完成文件的查找 查找路径:指定具体目标路径,默认为当前目录 查找条件:指定的查找标准,可以文件名,大小,类型,权限等标准进行,默认为找出指定路径下的所有文件 处理动作:对符合条件的文件做操作,默认输出至屏幕 find -maxdepth level  最大搜索目录深度 -mindept…

    2017-08-12
  • Linux文件查找工具之find “大宝剑”

    一、文件查找工具常用软件 locate:     locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令…

    Linux干货 2016-03-12
  • 对文件目录操作命令详解

    对文件目录操作命令详解 cd——切换目录 pwd——显示当前工作目录 ls——列出目录内容 touch——创建空文件和刷新时间 stat——查看文件状态 cp——复制文件和目录 mv——移动和重命名文件 rm——删除文件或目录 目录操作 tree 显示目录树 mkdir 创建目录 rmdir 删除空目录 rm -r 递归删除目录树 alias——命令别名 文…

    Linux干货 2016-09-06
  • UID SGID与chmod 777的一些问题

    先来看问题 问题来了:echo的行为返回是对的还是vi是对的? 现场分析: vi 和 echo 都被设置为SGID权限。 abc文件所在的父目录权限是777 echo无法写abc文件,而vi是可以的 当时被问到这个问题时,我也是一征,怎么会这样。加之SUID,SGID在企业应用很少,如此这么久早忘了一干二净,只是赶紧去补课~,但经过30MIN后依然没有找到问…

    Linux干货 2016-08-08
  • Linux入门知识之计算机基础

    计算机基础、linux发行版、命令帮助获取

    2018-01-11