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