游戏测试 JS 系列学习 基本语法组合

陈子昂 · 2018年04月04日 · 最后由 疯的蜗牛 回复于 2018年04月05日 · 1966 次阅读

前言

JS 原来只是一门前端语言的,随着 JS 家族的庞大后,C++ 延伸 +js 结合产物,后端和前端都可以使用 JS 的语言。如果学习过其他语言的对这门语言可以快速上手。
学习成本考虑到使用量是否为上升趋势,是的。JS 目前也是 github 上更新最多的语言,python 紧紧跟在后面,而且 python 还有 2,3 pip 分开的问题。
笔者是一个游戏测试,感谢在公司的项目接触到了这门语言,文章只介绍了基本语法组合,基本语法请先看网上菜鸟攻略

JS 导读 陆续添加中
先读导读
小论 JS 原型链 (一)
小论 JS 原型链 (二)

//一个完整的js代码 传参到构造函数后,实现sum的功能
var Math =function (x,y) {  //构造函数,并且初始化1个新的point对象
    this.x =x;  //this等于python的self,this为初始化的实例,将函数的参数存储为对象的属性
    this.y =y;
}
//用new 关键字去创建1个实例的数据
var m =new Math(3,4)

Math.prototype.add =function(x) {
    return x+1
}

//给point构造方法函数r point类.函数r 类需要先初始化
Math.prototype.sum =function () {
    console.log("x is %d+y is %d = %d",this.x,this.y,this.x +this.y)
    sum =this.x +this.y //7
    //如果没有return 函数cb结尾会有1个undefined
    return m.add(sum) //7+1 在方法内调另外1个方法
}
console.log(m.sum())

这里有个要注意的是 var m =new Math(3,4) 在哪里,并不会影响 m.add(sum) 的实例化.对象的有效性。
和其他语言一样,每个函数方法都需要有 1 个返回,如果不写 return,只有 console.log 会多返回 1 个 undefined。当然你可以修改返回 比如 return null(可以是关键字)如果完全不想显示 return ;

point =["items1","items2","items3"]
point.items =function () { //items为point的方法
    var p1 =this[0];
    var p2 =this[1];//这样可以拿到point里面的值并且把值保存下来其他地方可以用。
    console.log(p1)
    console.log(point[point.length-1]) //是一种学习方式
}
point.items()//items1

items 为 point 的方法,在 items 可以调用 point 的属性,注意这 2 句话没有直接关系 point[长度-1] 为 point 偏移下标的说明也是从 0 开始

var options =[ //options对象,案例是1个比较灵活切换的模型
    {https:"POST",http:"POST"},
    {https:"GET",http:"GET"},
    {ishttps:{1:"httpsreq",0:"httpreq"}}
]
console.log(options[1].https) //GET
console.log(options[2]["ishttps"]["0"])//httpreq

从左到右一行段段打印出来,取到里面内容,互联网可能这种用的少,但是不妨试试对自己很有帮助
最后一段很大用途,通过这个就能实现自由切换了,在请求的 boby 的时候,把取到的值存成对象就可以下文里面使用了。

var Client = function () {
    this.options = {};
    this.headers ={};
}

Client.prototype.init = function () {
    this.headers ={//不为空,如果是布尔值就是真
        'Content-Type': 'application/json' 
    }
    if(!!this.headers){//取反在取反 变成布尔值真
        return this.headers ={ "Content-Type": "text/html"}
    }
}
var client = new Client();
console.log(client.init())

这段代码本身意义不大,但是描述了取反,然后修改了 this.headers 的数据

结尾
在社区也学习到自己不足和成长了不少,也做点分享来回馈给其他人。这是一个良性的循环。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 9 条回复 时间 点赞

es6 了解一下~

😅 见笑了。还没转 es6..

陈子昂 回复

既然写 es5 了~~ 起码把原型链解释清楚吧~~ 要不然直接 new 一个函数的方式人家会懵逼的~~ 你上面的 demo 也就是原本就会 js 的人才看的懂。。。 所以你这写出来给谁看呢。。。

孙高飞 回复

你提的建议也对,我回头补个原型链的。代码本质是一段段结构化的对象,我自己学习各种语言的代码也是看结构化就学会的。

陈子昂 回复

恩恩, 也建议把 eventloop 闭包这些东西也详细讲一下~

孙高飞 回复

好的。一期期往下讲。异步编程的关键核心坚持写下去。

陈子昂 回复

恩恩~~ 坚持住哈~ 社区里还没有人写一个比较完整的 JS 系列帖子呢。 最好把 es6 也写进来, 然后选择三大框架里的一个也讲解一下。

马住学习,期待更新!

马克,,一直想学一下,又懒。。懒是原罪啊

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册