Python开发【前端】:JavaScript
JavaScript入门
简单了解下:
<body>
<input type="text" id="user" />
<input type="button" onclick="GETDATA();" value="点我"/>
<script>
function GETDATA() {
var i = document.getElementById('user');
alert(i.value);
}
</script>
</body>
在input框里输入用户名后,点击点我后浏览器窗口弹出刚刚输入的用户名
两种引用方式:
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--第一种方式引用js文件-->
<script src="commons.js"></script>
<!--第二种方式直接写在html中-->
<script>
alert('James')
</script>
</head>
字符串记得要加引号
JavaScript常用数据类型
1、变量
JavaScript中变量的声明是一个非常容易出错的点,局部变量必须一个 var 开头,如果未使用var,则默认表示声明的是全局变量
<script type="text/javascript"> // 全局变量
name = 'James'; function func(){
// 局部变量
var age = 18; // 全局变量
gender = "男"
}
</script>
2、数字
JavaScript中不区分整数值和浮点数值,JavaScript中所有数字均用浮点数值表示。
转换:
- parseInt(..) 将某值转换成数字,不成功则NaN
- parseFloat(..) 将某值转换成浮点数,不成功则NaN
特殊值:
- NaN,非数字。可使用 isNaN(num) 来判断。
- Infinity,无穷大。可使用 isFinite(num) 来判断
<script>
//字符串转换为数字
age="18";
i = parseInt(age);
</script>
更多数值计算
常量 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( )
计算正切值。 Math
Math
3、字符串
字符串是由字符组成的数组,但在JavaScript中字符串是不可变的:可以访问字符串任意位置的文本,但是JavaScript并未提供修改已知字符串内容的方法
① charAt (输入索引位置获取字符)
>a = 'James'
<"James"
>a.charAt(1)
<"a"
>a.charAt(2)
<"m"
>a.charAt(3)
<"e"
② substring (输入起始位置,结束位置获取字符)
>a = 'James'
<"James"
>a.substring(0,2)
<"Ja"
>a.substring(2,5)
<"mes"
③ lenght (获取当前字符串长度)
>a = 'James'
<"James"
>a.length
<5
④ concat (字符串拼接)
>a = 'James';
<"James"
>a.concat('eric');
<"Jameseric"
⑤ indexOf(子序列位置)
>a = 'James';
<"James"
>a.indexOf('me');
<2
>a.indexOf('es');
<3
⑥ split (分割字符)
>a = 'JamesaJames';
<"JamesaJames"
>a.split('a');
<["J", "mes", "J", "mes"]
>a.split('a',1);
<["J"]
>a.split('a',3);
<["J", "mes", "J"]
更多:
obj.length 长度 obj.trim() 移除空白
obj.trimLeft()
obj.trimRight)
obj.charAt(n) 返回字符串中的第n个字符
obj.concat(value, ...) 拼接
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则替换所有,否则只替换第一个匹配项,
$数字:匹配的第n个组内容;
$&:当前匹配的内容;
$`:位于匹配子串左侧的文本;
$':位于匹配子串右侧的文本
$$:直接量$符号
more
4、布尔值
布尔类型仅包含真假,与Python不同的是其首字母小写。
- == 比较值相等
- != 不等于
- === 比较值和类型相等
- !=== 不等于
- || 或
- && 且
5、数组
① 创建数组
li = [11,22,33,44]
[11, 22, 33, 44]
② split插入、删除或替换数组的元素
>li = [11,22,33,44]
<[11, 22, 33, 44]
>li.splice(1,0,99);
<[]
>li
<[11, 99, 22, 33, 44]
>li.splice(1,1,888);
<[99]
>li
<[11, 888, 22, 33, 44]
>li.splice(1,1)
<[888]
>li
<[11, 22, 33, 44]
③ slice 切片
>li = [11,22,33,44]
<[11, 22, 33, 44]
>li.slice(1,3)
<[22, 33]
其他常用功能:
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,..) 连接数组
obj.sort( ) 对数组元素进行排序
6、字典
创建字典
>dic = {'k1':'v1','k2':'v2'};
<Object {k1: "v1", k2: "v2"}
JavaScript语句和异常
1、循环
JavaScript中支持两个中循环语句,分别是:for 和 while
① 第一种方式: for循环,循环时,循环的元素是索引
循环数组
> a = [11,22,33,44]
for(var item in a){
console.log(a[item])
}
11
22
33
44
循环字典
> a = {'k1':'v1','k2':'v2'}
for(var item in a){
console.log(a[item])
}
v1
v2
② 第二种循环: for循环,循环条件判断
for (var i=0;i<10;i++){
//循环十次
}
结合数组循环
a = [11,22,33,44]
for(var i=0;i<a.length;i=i+1){
console.log(a[i])
}
11
22
33
44
③ 第三种循环: while循环,循环条件判断
while(条件){
// break;
// continue;
}
2、条件语句
JavaScript中支持两个中条件语句,分别是:if 和 switch
① if条件语句
if(条件){ }else if(条件){ }else if(条件){ }else{ }
② switch条件语句
switch(name){
case '1':
age = 123;
break;
case '2':
age = 456;
break;
default :
age = 777;
} switch语句
③ ==、===、!=、!== 四者的关系
1 == "1";
true
1 === "1";
false
1 != "1";
false
1 !== "1";
true
==只匹配数值、===不止匹配数值还匹配类型
④ &&and 与 ||或
and
if (1==1 || 2==2)
或
if (1==1 && 2==2)
JavaScript函数
1、基本函数
JavaScript中函数基本上可以分为一下三类:
// 普通函数
function func(arg){
return true;
} // 匿名函数
var func = function(arg){
return "tony";
} // 自执行函数
(function(arg){
console.log(arg);
})('123')
JavaScript正则表达
1、定义正则表达式
- /.../ 用于定义正则表达式
- /.../g 表示全局匹配
- /.../i 表示不区分大小写
- /.../m 表示多行匹配
2、test(判断字符串是否符合规定的正则)
rep = /\d+/;
rep.test("dfsfsfdsf423dsddd");
# true rep = /^\d+$/;
rep.test("dfsfsfdsf423dsddd");
# false
3、exec(获取匹配的数据)
默认只取第一个
rep = /\d+/;
str = "wangshen_67_houyanfa_20"
rep.exec(str)
# ["67"]
rep.exec(str)
# ["67"] 分组匹配、对匹配到的字符串进行二次匹配
var text = "JavaScript is more fun than Java or JavaBeans!";
var pattern = /Java\w*/;
pattern.exec(text);
# ["JavaScript"]
var pattern = /Java(\w*)/;
pattern.exec(text);
# ["JavaScript", "Script"] 全局匹配、对字符串一个一个的进行匹配直到全部匹配完成返回none,然后再次匹配时重新开始
var text = "JavaScript is more fun than Java or JavaBeans!";
var pattern = /Java(\w*)/g;
pattern.exec(text);
# ["JavaScript", "Script"]
pattern.exec(text);
# ["Java", ""]
pattern.exec(text);
# ["JavaBeans", "Beans"]
pattern.exec(text);
# null
pattern.exec(text);
# ["JavaScript", "Script"]
4、多行匹配
默认情况下就是多行匹配
text = "JavaScript is more fun than \n Java or JavaBeans!";
# "JavaScript is more fun than
Java or JavaBeans!"
pattern = /Java\w*/g;
pattern.exec(text);
# ["JavaScript"]
pattern.exec(text);
# ["Java"]
pattern.exec(text);
# ["JavaBeans"] 当出现^ $符匹配时只能匹配一行
text = "JavaScript is more fun than \nJava or JavaBeans!";
# "JavaScript is more fun than
Java or JavaBeans!"
pattern = /^Java\w*/g;
pattern.exec(text);
# ["JavaScript"]
pattern.exec(text);
# null 当出现^ $符匹配时还想匹配多行
text = "JavaScript is more fun than \nJava or JavaBeans!";
# "JavaScript is more fun than
Java or JavaBeans!"
pattern.exec(text);
# ["JavaScript", "Script"]
pattern.exec(text);
# ["Java", ""]
pattern.exec(text);
# null
JavaScript其他知识
1、定时器
<script>
//定义函数
function func() {
console.log(1); //console端打印数据
}
//创建一个定时器
setInterval("f1();",5000); //5000表示5秒 单位毫秒
</script>
setInterval(“执行函数”,“时间”)表示创建一个定时器;console.log(“数据”)在console打印输入的数据
2、跑马灯(滚动字符)
<body>
<div id="i1">欢迎习大大莅临指导</div>
<script>
function func() {
//根据ID获取指定标签的内容,定于局部变量
var tag = document.getElementById('i1');
//获取标签内部的内容
var content = tag.innerText;
var f = content.charAt(0);
var l = content.substring(1,content.length);
var new_content = l + f;
tag.innerText = new_content;
}
setInterval('func()',500);
</script>
</body>
最终效果“欢迎习大大莅临指导”字符滚动显示,结合了字符串处理和定时器
Python开发【前端】:HTML--》》http://www.cnblogs.com/lianzhilei/p/6038646.html
Python开发【前端】:CSS--》》http://www.cnblogs.com/lianzhilei/p/6046131.html
Python开发【前端】:DOM--》》http://www.cnblogs.com/lianzhilei/p/6072367.html
Python开发【前端】:JavaScript的更多相关文章
- Python开发【前端】:jQuery
jQuery简介 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是&qu ...
- Python开发【前端】:DOM
DOM(文档对象模型(Document Object Model)) 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.在网页 ...
- Python开发【前端】:HTML
HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏 ...
- 前端开发:Javascript中的数组,常用方法解析
前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...
- Python开发【前端】:CSS
css样式选择器 标签上设置style属性: <body> <div style="background-color: #2459a2;height: 48px;" ...
- Python web前端 05 JavaScript
Python web前端 05 JavaScript 一.获取元素 1.初识JavaScript /* .. */ #这是多行注释 // #这是单行注释 #JavaScript是一种脚本语言,是一种动 ...
- Python开发【第一篇】:目录
本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! Python开发[第一篇]:目录 Python开发[第二篇]:初识Python ...
- Sublime Text3介绍和插件安装——基于Python开发
Subime编辑器是一款轻量级的代码编辑器,是收费的,但是可以无限期使用.官网下载地址:https://www.sublimetext.com. Sublime Text3支持语言开发种类多样,几乎可 ...
- 前端——JavaScript
何谓JavaScript?它与Java有什么关系? JavaScript与HTML.CSS组合使用应用于前端开发,JavaScript是一门独立的语言,浏览器内置了JS的解释器.它除了和Java名字长 ...
随机推荐
- PHP缓存技术
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Python for Data Analysis
Data Analysis with Python ch02 一些有趣的数据分析结果 Male描述的是美国新生儿男孩纸的名字的最后一个字母的分布 Female描述的是美国新生儿女孩纸的名字的最后一个字 ...
- 【Cocos2d-x for WP8 学习整理】(2)Cocos2d-Html5 游戏 《Fruit Attack》 WP8移植版 开源
这一阵花了些时间,把 cocos2d-html5 里的sample 游戏<Fruit Attack>给移植到了WP8上来,目前已经实现了基本的功能,但是还有几个已知的bug,比如WP8只支 ...
- display:box和display:inline-box的区别
display:box我想大家很熟悉,那么display:inline-box呢,今天在项目中需要设置这样的属性box-align:center,那么就想到用 display:box;如果设置BOX, ...
- js最佳继承范型
先回想下怎么给一个类设置属性:1.构造函数 内 通过this2.prototype中的属性两者的区别就是构造函数中的属性是每个实例私有的,而prototype中的属性是所有实例共有的(一般方法和静态 ...
- Linux 安装tomcat
安装命令: yum install tomcat 安装完后默认: 安装路径: /usr/share/tomcat 执行命令(启动,停止, 重启): /etc/rc.d/init.d/tomcat 配置 ...
- kvc(键-值编码)
kvc(键-值编码) { NSString *_name; Author *_author; NSArray *_kvcArray; float price;} //kvc,setValue 的设的值 ...
- NOIp #2009
http://files.cnblogs.com/files/radiumlrb/NOIP2009%E6%8F%90%E9%AB%98%E7%BB%84%E5%A4%8D%E8%B5%9B%E8%AF ...
- jQuery 一些神奇的选择器写法
======================================================================== =========================== ...
- phpunit学习 3:
16:17 2015/12/11phpunit学习 3:单元测试的大概步骤是:编写待测试类,编写测试用例类,编写测试类,测试.1.如果你有多个类,多个测试类的test类,那么可以编写一个AllTest ...