preface

作为一名运维开发,必须懂得前端知识,比如javascript,dom等等,下面就聊聊javascript。

include

  1. 数据格式
  2. 条件判断,循环流程等。
  3. 函数
  4. 面向对象

what is javascript??

JavaScript 是世界上最流行的编程语言。

这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。

JavaScript 是脚本语言

  1. JavaScript 是一种轻量级的编程语言。
  2. JavaScript 是可插入 HTML 页面的编程代码。
  3. JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
  4. JavaScript 很容易学习

javascript的存在形式

  1. 文件,src引用某个js文件
  2. 块,以代码块的形式存在

javascript 存放在哪?

应该存放在body标签的底部。

局部变量与全局变量

  1. var 申明的是局部变量

    var name='ljf'
  2. 没有加var,表示是全局变量。谨慎使用全局变量。

    name='yq'

注释

  1. 当行注释可以使用//,如下所示
// alert('abc')
  1. 多行注释可以使用/* */来包裹需要注释的内容
/*
f1();
f2();
*/

Notice

以下操作都是在浏览器的console下操作的。

数据类型:1 数字,字符串,数组(字典)

特殊值

先说说几个特殊的值

  1. null
  2. undefined

以上bool值都是false

数字

var age=19
var age=Number(20)
var age=Number('20')
typeof 判断类型
var age=19
typeof age
"number"
age='19'
"19"
typeof age
"string"
parseInt 转换类型,从字符串到数字
age=parseInt(age)
19
parseFloat 转换类型,从字符串到浮点
age='19.9'
"19.9"
age=parseFloat(age)
19.9
age
19.9

字符串 去除两边空格

var name = ' ljf '
undefined
name.trim()
"ljf"

指定左右边 去除空格

name.trimLeft()
"ljf "
name.trimRight()
" ljf"
charAt 取值

从0开始的下标,传入参数为下标

name.charAt(2)
"j"
name.charAt(0)
" "
substring 切片
name.substring(0,2)
" l"
name.substring(2,5)
"jf "
indexOf 获取指定元素的下标
name.indexOf('j')
2

数组(字典)

等于python里面的列表

push 数组后端追加
a=[1,2,3,4]
[1, 2, 3, 4]
a.push(5)
5
a
[1, 2, 3, 4, 5]
unshift 最前面追加
a.unshift(1)
6
a
[1, 1, 2, 3, 4, 5]
splice 指定位置插入

第二个参数必须是0,非0会报错。遵循左闭右开的原则

a.splice(1,0,'ali')
[]
a
["the", "ali", 1, 1, 2, 3, 4, 5]
a.splice(4,0,'fuck')
[]
a
["the", "ali", 1, 1, "fuck", 2, 3, 4, 5]
pop 删除最后一个并且返回删除的值
a=["the", "ali", 1, 1, "fuck", 2, 3, 4]
c=a.pop()
c
4
slice 切片处理

传入下标,然后就能够对列表切片

a
["the", 2, 3, 1, 44]
a.slice(1,3)
[2, 3]
reverse 反转列表

并不返回新值,而是在原处修改。

a
["the", 2, 3, 1, 44]
a.slice(1,3)
[2, 3]
a.reverse()
[44, 1, 3, 2, "the"]
join 拼接功能
a
[44, 1, 3, 2, "the"]
a.join('-')
"44-1-3-2-the"
concat 合并数组

把数组b在a数组后面追加

var b=[11,22,33,44]
undefined
a.concat(b)
[44, 1, 3, 2, "the", 11, 22, 33, 44]
splice 删除指定下标的值
a
["the", 1, "fuck", 2, 3]
a.splice(1,2)
[1, "fuck"]
a

bool值

true和false都是小写的,如下所示:

var a=true;
undefined
a
true

json序列号与反序列化

采用json数据格式

dic = {'k1':'v2'}
Object {k1: "v2"}
m=JSON.stringify(dic)
"{"k1":"v2"}"
n=JSON.parse(m)
Object {k1: "v2"}

下面说说js的循环流程

Notice

以下操作都是在浏览器的console下操作的。

for循环

  1. break跳出循环
  2. continue 继续循环
循环数组

在数组里面的,默认是循环列表的下标

li=[11,22,33,44]
[11, 22, 33, 44]
for(var item in li){
console.log(item);
}
0
1
2
3
undefined for(var item in li){
console.log(li[item]);
}
11
22
33
44
循环字典

默认是循环k

a={'k1':'v1','k2':'v2'}
Object {k1: "v1", k2: "v2"}
for(var i in a){console.log(i)}
k1
k2
undefined
仿c语言的for循环

这个只能适用于数组,不能适用于字典

for(var i=0;i<100;i++){console.log(i)}
0
1
2

while循环

while(true){console.log(11)}

if条件判断

下面看看伪代码

if(条件){

}else if(条件){

}else if() {

}

switch 条件判断

下面看看伪代码

switch(name){
case 1:
console.log('1111');
break;
case 2:
console.log('222');
break;
default:
console.log('dddd')
}

异常捕获

下面看看伪代码

try{

}catch(e){      # e就是异常类型,

}finally {     # 最后执行的。
}

下面看看js的函数定义以及调用

普通函数

    function fuc1(args) {
console.log(args);
return 'ljf'
} xx = fuc1(123);
alert(xx);

匿名函数

下面这样的函数比较少见


var f = function (args) {
console.log(args);
};
f('this ni ming func')

自执行函数

自动执行的函数,一般用于js库。代码如下

    (function(arg){
console.log('1212',arg);
})('ljf')

面向对象的用法,我们一般用的少,这里的this等于python的self。

    function  Foo(name,age){
this.Name = name;
this.Age = age;
this.Func = function(arg){
return this.Name + arg;
}
} var obx = new Foo('ljf',22);
console.log(obx.Name);
console.log(obx.Age);
var ret = obx.Func('hehe');
console.log(ret)

3 HTML&JS等前端知识系列之javascript的基础的更多相关文章

  1. 4 HTML&JS等前端知识系列之Dom的基础

    preface 主要聊聊dom的编程,包含下面的内容: what's the dom dom选择器 innerText 替换或写入文本 value 获取input,select,textarea的值 ...

  2. 8 HTML&JS等前端知识系列之jquery的自定义方法

    preface 有时候我们在前端写jquery的时候,会自己自定义些方法,这样可以不需要重复造轮子.先说说2种自定义方法的区别: 不跟在选择器后面的 跟在选择器后面的. 那下面说说如何自定义jquer ...

  3. 5 HTML&JS等前端知识系列之jquery基础

    preface jquery其实就是对javascript的再次封装,方便我们开发者调用,下载地址是:http://jquery.com/download/ ,下面就说说常用使用方法 选择器 基本选择 ...

  4. 8 HTML&JS等前端知识系列之Ajax的例子

    what is ajax ? AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新 ...

  5. 9 HTML&JS等前端知识系列之Ajax post请求带有token向Django请求

    我们 在母板上写入这段代码: <script type="text/javascript"> // 个人定义大函数,不是重点,可以忽略 $(document).read ...

  6. 7 HTML&JS等前端知识系列之jquery的事件绑定

    preface 我们知道,每一个a,input等等标签都可以为其绑定一个事件,onclick也好,focus 也罢,都可以绑定的.但是众神key想过这个问题没有,倘若这里有1000个input标签需要 ...

  7. 前端知识体系:JavaScript基础-变量和类型

    前端工程师自检清单 1. JavaScript规定了几种语言类型 2. JavaScript对象的底层数据结构是什么 3. Symbol类型在实际开发中的应用.可手动实现一个简单的 Symbo 4. ...

  8. 前端知识杂烩(Javascript篇)

    1. JavaScript是一门什么样的语言,它有什么特点?2.JavaScript的数据类型都有什么?3.请描述一下 cookies,sessionStorage 和 localStorage 的区 ...

  9. 前端知识体系:JavaScript基础-作用域和闭包-JavaScript的作用域和作用域链

    JavaScript的作用域和作用域链 作用域: 变量的作用域无非两种:全局作用域和局部作用域 全局作用域: 最外层函数定义的变量拥有全局作用域.即对任何内部函数来说都是可以访问的. <scri ...

随机推荐

  1. RHEL 6.6安装桌面环境GNOME

    在测试服务器(Red Hat Enterprise Linux Server release 6.6)需要安装桌面系统环境,于是选择GNOME桌面环境安装. 一:检查系统的运行级别以及是否安装了桌面环 ...

  2. C#winfrom播放器动态加载歌词

    上周我们进行了结业项目答辩,是播放器项目.有一个关于播放器变唱歌边加载歌词的方法特别有意思,像酷狗那样子歌词和歌曲同步滚播的样子. 这里的工具是Visual Studio 2013,使用语言是C#和. ...

  3. MySQL有关Group By的优化

    昨天我写了有关MySQL的loose index scan的相关博文(http://www.cnblogs.com/wingsless/p/5037625.html),后来我发现上次提到的那个优化方法 ...

  4. MAC OS X的ACL扩展权限设置

    在WEB开发时,网站是以_www的用户运行的,而我在本地是以liuwencan的用户编辑的.这就带来一个问题:如果所有文件属于liuwencan,那么网站运行需要写文件时就因无权限而失败:如果所有文件 ...

  5. RSA加密算法的简单案例

    RSA加密算法是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击. 那关于RSA加密算法有哪些应用呢?以下举一个数据库身份验证的案例. 在使用数据集进行身份认证时,密码存在数据 ...

  6. [转]ASP.NET Core 之 Identity 入门(三)

    本文转自:http://www.cnblogs.com/savorboard/p/aspnetcore-identity3.html 前言 在上一篇文章中,我们学习了 CookieAuthentica ...

  7. 修改VMware虚拟机里面的显卡名称

    修改VMware虚拟机里面的显卡名称 现在有些蛋疼坑爹的游戏,会检测显卡的名称,如果其中有“Vmware”这类的字眼,就会提示程序在虚拟机中运行而拒绝执行(太不科学了嘛,我要是把我的实机驱动名称也改成 ...

  8. UVA - 11987 Almost Union-Find[并查集 删除]

    UVA - 11987 Almost Union-Find I hope you know the beautiful Union-Find structure. In this problem, y ...

  9. winform修改、打开窗体、构造函数传值

    制作登录窗体: 制作一个登陆窗体,实现点击按钮关闭此窗体并打开另一个窗体 直接在按钮点击事件中,实例化一个想要打开的窗体 使用show方法打开,并把登陆窗体的visible属性改为false Form ...

  10. maven更改编译环境的java版本

    <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...