为什么80%的码农都做不了架构师?>>>   

Javascript的变量:

name = "Asktao";        //全局变量
var name2 = "ASKTAO";   //局部变量

Javascript基本数据类型:

数字: JavaScript中不区分整数值和浮点数值,JavaScript中所有数字均用浮点数值表示。

  1. parseInt(..)    将某值转换成数字,不成功则NaN
  2. parseFloat(..) 将某值转换成浮点数,不成功则NaN
  3. NaN,非数字。可使用 isNaN(num) 来判断。
  4. Infinity,无穷大。可使用 isFinite(num) 来判断。
  5. 其他:
    常数:
    Math.E              //常量e,自然对数的底数。
    Math.LN10           //10的自然对数。
    Math.LN2            //2的自然对数。
    Math.LOG10E         //以10为底的e的对数。
    Math.LOG2E          //以2为底的e的对数。
    Math.PI             //常量figs/U03C0.gif。
    Math.SQRT1_2        //2的平方根除以1。
    Math.SQRT2          //2的平方根。
    
    静态函数:
    Math.abs( )         //计算绝对值。
    Math.acos( )        //计算反余弦值。
    Math.asin( )        //计算反正弦值。
    Math.atan( )        //计算反正切值。
    Math.atan2( )       //计算从X轴到一个点的角度。
    Math.ceil( )        //对一个数上舍入。
    Math.cos( )         //计算余弦值。
    Math.exp( )         //计算e的指数。
    Math.floor( )       // 对一个数下舍人。
    Math.log( )         //计算自然对数。
    Math.max( )         //返回两个数中较大的一个。
    Math.min( )         //返回两个数中较小的一个。
    Math.pow( )         //计算xy。
    Math.random( )      //计算一个随机数。
    Math.round( )       //舍入为最接近的整数。
    Math.sin( )         //计算正弦值。
    Math.sqrt( )        //计算平方根。
    Math.tan( )         //计算正切值。

字符串: 串是由字符组成的数组,但在JavaScript中字符串是不可变的:可以访问字符串任意位置的文本,但是JavaScript并未提供修改已知字符串内容的方法。

obj.length                          //长度
obj.trim()                          //移除两侧空白
obj.trimLeft()                      //移除左侧空格
obj.trimRight()                     //移除右侧空格
obj.charAt(n)                       //返回字符串中的第n个字符
obj.concat(value,value2)            //拼接
obj.indexOf(substring,start)        //子序列位置
obj.lastIndexOf(substring,start)    //子序列位置
obj.substring(from, to)             //根据索引获取子序列
obj.slice(start, end)               //切片
obj.toLowerCase()                   //大写
obj.toUpperCase()                   //小写
obj.split(delimiter, limit)         //分割
obj.search(regexp)                  //从头开始匹配,返回匹配成功的第一个位置(g无效)
obj.match(regexp)                   //全局搜索,如果正则中有g表示找到全部,否则只找到第一个。
obj.replace(regexp, replacement)    // 替换,正则中有g则替换所有

数组: JavaScript中的数组类似于Python中的列表

obj.length          //数组的大小
obj.push(ele)       //尾部追加元素
obj.pop()           //尾部获取一个元素
obj.unshift(ele)    //头部插入元素
obj.shift()         //头部移除元素
obj.splice(start, deleteCount, value, ...)  //插入、删除或替换数组的元素
obj.splice(n,0,val) //指定位置插入元素
obj.splice(n,1,val) //指定位置替换元素
obj.splice(n,1)     //指定位置删除元素
obj.slice( )        //切片
obj.reverse( )      //反转
obj.join(sep)       //将数组元素连接起来以构建一个字符串
obj.concat(val,val2)  //连接数组
obj.sort( )         //对数组元素进行排序

布尔值:布尔类型仅包含真假,与Python不同的是其首字母小写。

1=="1"      //执行结果为 true
1==="1"     //执行结果为 false
===:不仅比对值是否相等,还比对数据类型是否相等。
  1. ==      比较值相等
  2. !=       不等于
  3. ===   比较值和类型相等
  4. !===  不等于
  5. ||         或(or)
  6. &&     且(and)

字典:我理解的就是JSON

json = {"name":"Asktao","age":18}

Javascript循环:

for循环

//数组的方式取值(列表)
var names = ["alex", "tony", "rain"];
for(var index in names){console.log(index);         //index是索引
    console.log(names[index]);  //取值
}
//字典的方式取值(JSON)
var json = {"name":"Asktao","age":18}
for(var index in json){console.log(index);         //index是key
    console.log(json[index]);  //取值
}
//常规for循环(不支持字典循环)
for(var i=0;i<10;i++){console.log(i)
}

支持while循环

while(3==2){//while(条件){
    //.循环
    // }
}

Javascript条件语句:

if条件语句:

if(false){//如果条件为真,则执行此处。
}else if(true){//如果条件为真,则执行此处。
}else{//如果以上条件都不满足,则执行此处。
}

switch条件语句:

switch(name){case '1':       //如果name=1
        age = 123;
        break;      //中断
    case '2':       //如果name=2
        age = 456;
        break;      //中断
    default :       //name都不满足时,执行此处
        age = 777;
}

Javascript函数:

普通函数:

//普通函数
function func2(arg){return arg+333;
}

匿名函数:

//匿名函数
setInterval(function(){//间隔2秒执行函数
},2000);

自执行函数:创建函数并自动执行(记住()())

//自执行函数
(function(arg){console.log();
})(1);

Javascript序列化:

  1. JSON.stringify(obj)   将对象转换成字符串
  2. JSON.parse(str)        将字符串转换成对象
//序列化与反序列化
li = [11,22,33,44,55,66];
//Array [ 11, 22, 33, 44, 55, 66 ]
str = JSON.stringify(li);
//"[11,22,33,44,55,66]"
newLi = JSON.parse(str);
//Array [ 11, 22, 33, 44, 55, 66 ]

Javascript转义:

  1. decodeURI( )                   URl中未转义的字符
  2. decodeURIComponent( )   URI组件中的未转义字符
  3. encodeURI( )                   URI中的转义字符
  4. encodeURIComponent( )   转义URI组件中的字符
    url = "https://www.baidu.com/s?wd=%E9%9A%8F%E4%BE%BF";
    newURL = decodeURI(url);
    //"https://www.baidu.com/s?wd=随便";
    new2URL = encodeURI(newURL);
    //"https://www.baidu.com/s?wd=%E9%9A%8F%E4%BE%BF"
    newURL_C = encodeURIComponent(newURL);
    //"https%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%E9%9A%8F%E4%BE%BF"
    new2URL_C = decodeURIComponent(new2URL);
    //"https://www.baidu.com/s?wd=随便";
  5. escape( )                         对字符串转义
  6. unescape( )                     给转义字符串解码
  7. URIError                         由URl的编码和解码方法抛出

Javascript-eval:

python:
        val = eval(表达式)
                exec(执行代码)
    JavaScript:
        val = eval(表达式和执行代码)

Javascript时间:

now.getXXXX    取得时间
    now.setXXXX    设置时间

//Date类
now = new Date();        //获取当前时间
now.getMinutes()         //取得时间
now.setMinutes(now.getMinutes()+10)     //时间添加十分钟。

Javascript作用域:

  1. 以函数作为作用域
  2. 函数的作用域在函数未被调用前,已经创建
  3. 函数的作用域存在作用域链,并且也是在被调用前创建
  4. 函数内局部变量提前声明

JavaScript面向对象及原型:

面向对象:

function Foo(n){this.name = n;      //this相当于python的self
    this.sayName = function(){console.log(this.name)}
}
f = new Foo("ASKTAO");  //创建对象时需要用new (Date类)
f.sayName();            //将方法写在函数里会产生重复代码,影响效率。推荐使用原型。

原型:

function Foo(n){this.name = n;
}
Foo.prototype = {       //使用prototype 声明函数就是使用原型的方法。
    "sayName" : function(){console.log(this.name)}
};
f = new Foo("ASKTAO");  //创建对象时需要用new (Date类)
f.sayName();            //使用方法不变

Javascript正则:

test:判断字符串是否符合正则

rep = /^\d+$/;                  //匹配规则
//test  -   判断字符串是否符合规定的正则
rep.test("jfjsadjfjasdf93");    //返回false
rep.test("564654564");          //true

exec:获取匹配正则的数据

rep = /\bjava\w+\b/;                  //匹配规则
//exec  -   获取匹配的数据
rep.exec("java1111 java2222 java32333");    //结果:java1111

rep = /\bjava(\w+)\b/;                  //匹配规则-加括号,则进行二次匹配
//exec  -   获取匹配的数据
rep.exec("java1111 java2222 java32333");    //结果:[java1111,1111]

rep = /\bjava\w+\b/g;                  //匹配规则
//exec  -   获取匹配的数据
rep.exec("java1111 java2222 java32333");        //结果:java1111
rep.exec("java1111 java2222 java32333");        //结果:java2222
rep.exec("java1111 java2222 java32333");        //结果:java32333
rep.exec("java1111 java2222 java32333");        //结果:null

rep = /\bjava(\w+)\b/g;                  //匹配规则-加括号,则进行二次匹配
//exec  -   获取匹配的数据
rep.exec("java1111 java2222 java32333");        //结果:[java1111,1111]
rep.exec("java1111 java2222 java32333");        //结果:[java2222,2222]
rep.exec("java1111 java2222 java32333");        //结果:[java32333,32333]
rep.exec("java1111 java2222 java32333");        //结果:null

rep = /^java\w+/gm;                     //m,多行匹配。配合^或$使用
rep.exec("java1111 java2222 \njava32333");      //结果:java1111
rep.exec("java1111 java2222 \njava32333");      //结果:java32333

其他:

  1. null是JavaScript语言的关键字,它表示一个特殊值,常用来描述“空值”。
  2. undefined是一个特殊值,表示变量未定义。

转载于:https://my.oschina.net/asktao/blog/877125

【学以致用】JavaScript相关推荐

  1. [译] 学习 JavaScript:9 个常见错误阻碍你进步

    本文讲的是[译] 学习 JavaScript:9 个常见错误阻碍你进步, 原文地址:Learning JavaScript: 9 Common Mistakes That Are Holding Yo ...

  2. [转][探讨]为什么说JavaScript是性价比最高的技术?

    JavaScript可算是世界上最流行的编程语言之一,这个被大量的开发者与设计师随手拈来增强他们的Web前端的脚本语言,如今越来越被重视.JavaScript是一种能让你的网页更加生动活泼的程式语言, ...

  3. Javascript数组操作

    使用JS也算有段时日,然对于数组的使用,总局限于很初级水平,且每每使用总要查下API,或者写个小Demo测试下才算放心,一来二去,浪费不少时间:思虑下,堪能如此继续之?当狠心深学下方是正道. 原文链接 ...

  4. 翻译连载 | 第 11 章:融会贯通 -《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...

    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...

  5. 麒麟子Javascript游戏编程零基础教程大纲

    大家好,我是麒麟子, 开源项目<幼麟棋牌-四川麻将>(泄漏版叫 <达达麻将>)作者,成都幼麟科技创始人. 开源项目地址(Github与Gitee同步更新): Github ht ...

  6. JavaScript面向对象实现-坦克大战(附前端全套学习路线)

    [课程简介] 使用javascript+面向对象实现一个坦克大战游戏,让更多的同学能更加深入地理解面向对象思想. [主讲内容] 1. 讲解什么是面向对象,javascript中如何实现面向对象 2. ...

  7. 史上被骂最多的编程语言:JavaScript

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Sleeping is nice. You forget about eve ...

  8. JavaScript 原型和原型链及 canvas 验证码实践

    前言 最近在复习 JavaScript 基础,因为工作以后基本上没用过,天天都是拿起框架加油干,确实大部分都忘了.到了原型和原型链这一部分,觉得自己理解的比较模糊.又翻阅了<你不知道的 Java ...

  9. JavaScript面向对象编程-第三版不完全系统解读

    JavaScript面向对象编程-第三版不完全系统解读 作者:老九-技术大黍 产品:查看原文 社交:知乎 公众号:老九学堂(新手有福利) 特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系笔者 ...

最新文章

  1. golang源码分析-启动过程概述
  2. Xilinx 7系列FPGA介绍
  3. 美国会议员提出“漏洞披露法案” 仍考虑非中立实体授权
  4. CF140C-New Year Snowmen【优先队列】
  5. L2-007. 家庭房产
  6. html调用js函数_使用Require.js实现模块化开发
  7. SVD 与 PCA 的直观解释(3): SVD的直观解释及推导
  8. windows c++版faster-rcnn
  9. log日志显示与写入文件—qt
  10. H3C网络流量镜像配置
  11. Activiti(二)简单请假流程实现
  12. PCB治具设计、制造和管理
  13. 腾讯CSIG前端面经全网最全总结
  14. 逻辑回归模型——股票客户流失预警模型
  15. Unity使用新输入系统InputSystem制作飞机大战Demo
  16. JAVA SE基础笔记
  17. 让iOS开发变得更有效率-分类、工具类
  18. MyBatis-Plus分页查询(快速上手运用)
  19. java 矩阵求秩_线性代数精华3——矩阵的初等变换与矩阵的秩
  20. 字段类型与合理的选择字段类型

热门文章

  1. 软件测试工程师应该怎样规划自己?成为年薪30W+测试工程师(乾坤未定,皆是黑马)
  2. Java中的增强for循环和break continue的使用 以及流程控制训练
  3. 计算机word的常用功能技巧,word一些实用小技巧
  4. 专业计算机术语中英文对照(二)
  5. 对c++输入输出的一些封装(bushi)
  6. 论return 0的高级写法 bushi​​​​​​​)
  7. 计算机网络 - linux - 配置静态ip地址(NAT模式)
  8. 成都笔试——PL/SQL准备
  9. 商务网站建设与维护【3】
  10. 爬虫读取疫情数据,可根据兴趣进行调整,并邮件形式每天定时发送