JavaScript入门

  JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
  在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为NetscapeSun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与SelfScheme较为接近。
  为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript
 

简单了解下:

<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的更多相关文章

  1. Python开发【前端】:jQuery

    jQuery简介 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨是&qu ...

  2. Python开发【前端】:DOM

    DOM(文档对象模型(Document Object Model)) 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.在网页 ...

  3. Python开发【前端】:HTML

    HTML HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏 ...

  4. 前端开发:Javascript中的数组,常用方法解析

    前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...

  5. Python开发【前端】:CSS

    css样式选择器 标签上设置style属性: <body> <div style="background-color: #2459a2;height: 48px;" ...

  6. Python web前端 05 JavaScript

    Python web前端 05 JavaScript 一.获取元素 1.初识JavaScript /* .. */ #这是多行注释 // #这是单行注释 #JavaScript是一种脚本语言,是一种动 ...

  7. Python开发【第一篇】:目录

    本系列博文包含 Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习编程的童鞋提供一点帮助!!! Python开发[第一篇]:目录 Python开发[第二篇]:初识Python ...

  8. Sublime Text3介绍和插件安装——基于Python开发

    Subime编辑器是一款轻量级的代码编辑器,是收费的,但是可以无限期使用.官网下载地址:https://www.sublimetext.com. Sublime Text3支持语言开发种类多样,几乎可 ...

  9. 前端——JavaScript

    何谓JavaScript?它与Java有什么关系? JavaScript与HTML.CSS组合使用应用于前端开发,JavaScript是一门独立的语言,浏览器内置了JS的解释器.它除了和Java名字长 ...

随机推荐

  1. python之常用内置函数

    python内置函数,可以通过python的帮助文档 Build-in Functions,在终端交互下可以通过命令查看 >>> dir("__builtins__&quo ...

  2. Java正则表达式实现字符串的动态多替换

    需求场景: 今天在处理SQL语句的时候,由于数据库中存的格式是VARCHAR2型的,这就需要对SQL语句中WHERE条件后边的带数字的字符串加上单引号,对于字符串的处理,首先想到的就是正则表达式,对正 ...

  3. 对DIP IoC DI的理解与运用

    DIP,IoC,DI基本概念 依赖倒置原则(DIP,Dependency Inverse Principle):强调系统的“高层组件”不应当依赖于“底层组件”,并且不论是“高层组件”还是“底层组件”都 ...

  4. ubuntu wifi连接不上或经常断网,重启就好

    问题1.知道wifi密码,驱动也有,可以点击连接,总是提示"连接断开,您现在处于离线状态". 1.打开终端"ctrl+alt+T" 2.输入: sudo vim ...

  5. 【centOS】账号管理

    一.认识/etc/passwd和/etc/shadow 1.passwd的构造 上图为passwd其中一个用户的用户信息,分别表示为[用户名][密码][UID][GID][注释][家目录][Shell ...

  6. js实现去重字符串

    实现去重字符串主要是把重复的字符与原来的字符(先push()进入一个数组存起来)相匹配,如果match返回的不是null则说明重复,就删除掉: <script> var str = pro ...

  7. IE、FF、Chrome浏览器中的JS差异介绍

     FF.Chrome:没有window.event对象 FF.Chrome:没有window.event对象,只有event对象,IE里只支持window.event,而其他主流浏览器两者都支持,所以 ...

  8. 怎样上传网页到ftp中

    1.下载filezilla软件软件并安装 打开刚刚装好的FileZilla,点击菜单中的"文件"             2.点击站点管理器 3.点击新站点

  9. css样式表分类、选择器分类、css基础样式

    1 . 样式表  Cascading Style Sheet      css优势: 内容与表现分离 网页的表现统一,容易修改 丰富的样式,使网页布局更加灵活 减少网页代码量,增加网页的浏览速度,节省 ...

  10. mac优秀软件介绍

    1.首先是office软件: Microsoft_Office_2016_Installer.pkg 然后是一个破解软件 FWMSO2016VLU2.0.dmg_.zip 两个都不可少 2.然后是如果 ...