Python 前端 js基础
Javascript 概述
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。
1、JavaScript代码存在形式
1
2
3
4
5
6
7
|
<! - - 方式一 - - > <script type "text/javascript" src = "JS文件" >< / script> <! - - 方式二 - - > <script type "text/javascript" > Js代码内容 < / script> |
2、JavaScript代码存在位置
- HTML的head中
- HTML的body代码块底部(推荐)
由于Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放置在body代码块底部,那么即使js代码耗时严重,也不会影响用户看到页面效果,只是js实现特效慢而已。
1
2
3
4
5
6
|
如: <script src = "https://www.gstatic.com/og/_/js/k=og.og2.en_US.iF4jnkQuaf0.O/rt=j/t=zcms/m=def/exm=in,fot/d=1/ed=1/rs=AA2YrTv5-POC4Ks9GtGRdY2ywUWisqz7-Q" >< / script> <script> alert( '123' ); < / script> |
3、变量
- 全局变量
- 局部变量
JavaScript中变量的声明是一个非常容易出错的点,局部变量必须一个 var 开头,如果未使用var,则默认表示声明的是全局变量
1
2
|
var name = "seven" # 局部变量 age = 18 # 全局变量 |
注:注释 // 或 /* */
js压缩:一般js文件都被压缩,然后子再传递给浏览器端,jquery.min.js就是jquery.js压缩后的,格式发生了改变,例如,函数是被压缩成一行。
4、基本数据类型
数字(Number)
1
2
3
4
5
|
var page = 111 ; var age = Number( 18 ); var a1 = 1 ,a2 = 2 , a3 = 3 ; #统一一行来定义多个局部变量 parseInt( "1.2" ); #字符串转换为int类型 parseFloat( "1.2" ); #字符串转换为浮点型 |
console.log(age, typeof age) #typeof 查看数据的类型
字符串(String)
1
2
3
4
5
6
7
8
9
10
|
var name = "wupeiqi" ; var name = String( "wupeiqi" ); var age_str = String( 18 ); 常用方法: obj.trim() #去除空格 obj.charAt(index) #根据索引来取值 obj.substring(start,end) #获取序列,和python的切片一样 obj.indexOf(char) #获取想要字母的下标 obj.length #获取字符串的长度 |
如python 一样,js也是可以对字符串做操作的,
布尔(Boolean)
1
2
3
|
var status = true; #注意首字母是小写 var status = false; var status = Boolen( 1 = = 1 ) |
数组(Array)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
var names = [ 'alex' , 'tony' , 'eric' ] var names = Array( 'alex' , 'tony' , 'eric' ) #创建数字的两种方法 常用方法: 添加 obj.push(ele) #追加 obj.unshift(ele) #最前插入 obj.splice(index, 0 , 'content' ) #指定索引插入,索引,中间必须是0,content 移除 obj.pop() #数组尾部获取,并移除 obj.shift() #数组头部获取,并移除 obj.splice(index,count) #数组指定位置后count个字符 切片 obj. slice (start,end) 合并 newArray = obj1.concat(obj2) 翻转 obj.reverse() 字符串化 obj.join( '_' ) 长度 obj.length 字典 var items = { 'k1' : 123 , 'k2' : 'tony' } |
更多操作见:http://www.shouce.ren/api/javascript/main.html
javascript的序列化与反序列化:
undefined
1
2
|
undefined表示未定义值 var name; |
null
1
|
null是一个特殊值 |
5、循环语句
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
var names = [ "alex" , "tony" , "rain" ]; / / 数组:方式一 for (var i = 0 ;i<names.length;i + + ){ console.log(i); console.log(names[i]); } / / 数组:方式二 for (var index in names){ console.log(index); console.log(names[index]); } var names = { "name" : "alex" , "age" : 18 }; / / 字典:方式一 #因为字典的key不是数字,所以只有这一种循环的模式 for (var index in names){ console.log(index); console.log(names[index]); } / / while 循环 while (条件){ / / break ; / / continue ; } |
6、条件语句
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
/ / if 条件语句 if (条件){ } else if (条件){ } else { } var name = 'python' ; var age = 1 ; / / switch,case语句 switch(name){ case '1' : age = 123 ; break ; case '2' : age = 456 ; break ; default : age = 777 ; } |
7、异常处理
1
2
3
4
5
6
7
|
try { }catch(e) { } finally { } |
8、函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
函数的声明 function func(arg){ return true; } 匿名函数 var func = function(arg){ return "tony" ; } 自执行函数 (function(arg){ console.log(arg); })( '123' ) |
9、面向对象
1
2
3
4
5
6
7
8
9
10
11
|
function Foo (name,age) { this.Name = name; this.Age = age; this.Func = function(arg){ return this.Name + arg; } } var obj = new Foo( 'alex' , 18 ); var ret = obj.Func( "sb" ); console.log(ret); |
Dom 概述
文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容。
注:一般说的JS让页面动起来泛指JavaScript和Dom
Dom等于把整个页面封装起来,可以利用,document.getXXX的方式来调用其的内容。
1、选择器
1
2
3
|
document.getElementById( 'id' ); document.getElementsByName( 'name' ); document.getElementsByTagName( 'tagname' ); |
获取这个id=‘hello’正行的代码
2、内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
innerText innerHTML var obj = document.getElementById( 'nid' ) obj.innerText # 获取文本内容 obj.innerText = "hello" # 设置文本内容 obj.innerHTML # 获取HTML内容 obj.innerHTML = "<h1>asd</h1>" # 设置HTML内容 特殊的:以下这些都需要value来获取值 input 系列 textarea标签 select标签 value属性操作用户输入和选择的值 |
让网页动起来:
<p id="hello">1</p>
<button type="button" onclick="abc()">+1</button> <script>
function abc(){
var a = document.getElementById("hello");
var text = a.innerText;
var text = parseInt(text);
text += 1;
a.innerText = text }
<input type="text" id="search" value="请输入关键字" onfocus="abc()" onblur="cba()"> <script>
function abc(){
var ndi = document.getElementById('search')
var value = ndi.value;
if(value == '请输入关键字'){
ndi.value = '';
}
} function cba(){
var ndi = document.getElementById('search')
var value = ndi.value;
if(!value.trim()){
ndi.value = '请输入关键字'
}
} </script>
输入框显示值
3、创建标签
dd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
方式一: var obj = document.createElement( 'a' ); obj.href = "http://www.etiantian.org" ; obj.innerText = "老男孩" ; var container = document.getElementById( 'container' ); / / container.appendChild(obj); / / container.insertBefore(obj, container.firstChild); / / container.insertBefore(obj, document.getElementById( 'hhh' )); 方式二: var container = document.getElementById( 'container' ); var obj = "<input type='text' />" ; container.innerHTML = obj; / / 'beforeBegin' , 'afterBegin' , 'beforeEnd' , 'afterEnd' / / container.insertAdjacentHTML( "beforeEnd" ,obj); |
<body> <div id="container"></div>
<a href="http://www.baidu.com" onclick="return addevent()">添加</a> <script>
function addevent(){
var nid = document.getElementById("container")
var tag = "<input type='text' />"
nid.innerHTML = tag;
return false;
} </script> </body>
自定义的函数优先执行,然后再执行自带的函数。
4、标签属性
1
2
3
4
5
6
7
8
9
10
11
|
var obj = document.getElementById( 'container' ); 固定属性 obj. id obj. id = "nid" obj.className obj.style.fontSize = "88px" ; 自定义属性 obj.setAttribute(name,value) obj.getAttribute(name) obj.removeAttribute(name) |
5、提交表单
1
|
document.geElementById( 'form' ).submit() |
6、事件
特殊的:
1
2
3
|
window.onload = function(){} / / jQuery:$(document).ready(function(){}) / / onload是所有DOM元素创建、图片加载完毕后才触发的。而ready则是DOM元素创建完毕后触发的,不等图片加载完毕。图片还么有渲染,就可以进行事件的执行。 |
特殊参数:this,event
Python 前端 js基础的更多相关文章
- 前端-js基础
HTML三把利剑之一,浏览器具有解析js的能力 一.js基础 在HTML中可以将JavaScript/JS的代码写在head中,被script标签所包裹,当浏览器解释HTML时,遇到style标签时, ...
- 前端JS基础知识
1. 原型 / 构造函数 / 实例 原型(prototype): 一个简单的对象,用于实现对象的 属性继承.可以简单的理解成对象的爹.在 Firefox 和 Chrome 中,每个JavaScript ...
- Python 前端 Html基础
概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页的标准语言.相当于定义统一 的规则.大家都来遵守它,这样就可以让浏览器根据标记语 ...
- Python 前端 Css基础
CSS样式存在的位置 1.放置在标签内,局部生效 <div style="color: red;font-size: 18px;">hello world</di ...
- 前端05 /js基础
前端05 /js基础 昨日内容回顾 css选择器的优先级 行内(1000) > id(100) > 类(10) > 标签(1) > 继承(0) 颜色 rgb(255,255,2 ...
- 前端总结·基础篇·JS(一)五大数据类型之字符串(String)
前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(二)补充 前端总结·基础篇·JS(一)五大数据类型之字符串(String) 目录 这是& ...
- 前端总结·基础篇·JS(二)数组深拷贝、去重以及字符串反序和数组(Array)
目录 这是<前端总结·基础篇·JS>系列的第二篇,主要总结一下JS数组的使用.技巧以及常用方法. 一.数组使用 1.1 定义数组 1.2 使用数组 1.3 类型检测 二.常用技巧 2.1 ...
- 前端总结·基础篇·JS(三)arguments、callee、call、apply、bind及函数封装和构造函数
前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...
- 前端总结·基础篇·JS(四)异步请求及跨域方案
前端总结系列 前端总结·基础篇·CSS(一)布局 前端总结·基础篇·CSS(二)视觉 前端总结·基础篇·CSS(三)补充 前端总结·基础篇·JS(一)原型.原型链.构造函数和字符串(String) 前 ...
随机推荐
- SpringMVC注解方式与文件上传
目录: springmvc的注解方式 文件上传(上传图片,并显示) 一.注解 在类前面加上@Controller 表示该类是一个控制器在方法handleRequest 前面加上 @RequestMap ...
- MATLAB 添加自定义的模块到simulink库浏览器
在simulink 浏览器窗口File->new->library,打开编辑窗口,将自定义的模块托人编辑窗口.保存为DC_MOTOR_sub_lib.mdl文件. 新建function文件 ...
- edittext 设置不自动获取焦点
给父级控件 设置两个属性,可以把焦点抢夺过去,最好是没有任何事件的父级控件(本人比较喜欢在xml文件的跟布局设置,因为页面的跟布局一般情况下,是不会设置任何事件的) android:focusable ...
- javascript简单计算器实践
参考部分资料,编写一个简单的计算器案例,虽然完成了正常需求,但是也有不满之处,待后续实力提升后再来补充,先把不足之处列出: 1:本来打算只要打开页面,计算器的输入框会显示一个默认为0的状态,但是在输入 ...
- java校验maven下载的jar文件
有时候maven真的很坑! 有时候提示invalid LOC header (bad signat signature), 但又有时候什么都不提示,工程报错,情况有肯多中,不知道大家遇到过几种诡异的. ...
- HDU - 5493 Queue 2015 ACM/ICPC Asia Regional Hefei Online(线段树)
按身高排序,每个人前面最高的人数有上限,如果超出上限说明impossible, 每次考虑最小的人,把他放在在当前的从左往右第k+1个空位 因为要求字典序最小,所以每次k和(上限-k)取min值. 没有 ...
- python_96_类的继承1
#面向对象3大特性:封装,多态,继承 # 继承可节省内存,减少代码 class People(): def __init__(self,name,age): self.Name=name self.A ...
- 拨出网线后,网卡IP丢失
/etc/network/interfaces与NetworkManager 问题:在Centos7上把网线拨出后,发现网卡状态是down,并且网卡上的IP丢失 原因:此网卡被NetworkManag ...
- Linux运维笔记--第一部
CentOS 学习总结 ...
- Java--equals和 == 的比较和equals()、HashCode()的重写
一. equals和 == 的比较 1.== 运算符 ① == 如果比较的是基本数据类型,则比较的是值. ② == 如果比较的是引用数据类型,则比较的是地址值. 2.equals ①它属于java.l ...