【前端】:JavaScript

前言: 开始学JavaScript,Dom,jQuery了,知识好杂,本身记忆力就不行的~~这篇博客简单介绍下JavaScript. 下篇博客写关于Dom的。

JavaScript是一门编程语言(之前一直误以为是有关java的知识),浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。JS目前广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。

一、JavaScript代码存在形式与存放位置

1. JavaScript代码有两种存在形式,一种是直接在html内部编写javascript,另一种是导入JS文件。

方式一:在html内部编写javascript

1 <script>
2     function f1(){
3     alert(‘f1‘)
4     }
5     f1();
6 </script>

方式二:通过文件导入

1 <script src="common.js"></script>
2 <script>f2();</script>

第一行<script src="common.js"></script>,表示导入common.js文件,common.js文件的内容:

1 function f2(){
2     alert(‘f2‘)
3     }

2、JavaScript代码存在位置

  • HTML的head中
  • HTML的body代码块底部(推荐)

由于Html代码是从上到下执行,如果放在head头部中的js代码耗时严重,就会导致用户长时间无法看到页面;如果放置在body代码块底部,那么即使js代码耗时严重,也不会影响用户看到页面效果,只是js实现特效慢而已。
一般把js代码放在body代码块的最后面

二、声明变量/注释/分号

JavaScript中变量的声明是一个非常容易出错的点,局部变量必须一个 var 开头,如果未使用var,则默认表示声明的是全局变量。建议使用的时候一般不要使用全局变量!否则如果代码量比较大的时候容易出现调用混乱的问题。

1 var name = "seven"  # 局部变量
2 age = 18            # 全局变量

注释:

单行注释:   //          
多行注释:  /* 要注释的内容 */  

分号:

写js代码时,注意每一行都加分号(如下面的左图)。
因为产品上线时会用专门的工具将多行的代码压缩成单行的代码(如下面的右图)。如果不加分号上线时就乱套了!!

          

jquery.js    没压缩成单选的
jquery.min.js  有压缩成单行

实例: 刚好我下载jquery时发现是jquery-3.1.1.min.js就顺手截了图。

三、数字与字符串

1. 数字(Number)

1 var age = 18;
2 或 var age = Number(18);

将字符串转化为数字 

Number("123");  或  parseInt("123");    推荐

前面已经说过浏览器内置了JavaScript语言的解释器,下面就来写个超简单的:

 1     <script>
 2         var age = "18";
 3         var age_1 = parseInt(age);
 4         console.log(age);
 5         console.log(age, typeof age);   //输出:18 string 注意:typeof age 别写错
 6
 7         var age_2 ="16.6";
 8         console.log(parseInt(age_2));     //输出:16
 9         console.log(parseFloat(age_2));  //输出:16.6
10
11         var a1 = 1,a2 = 2, a3 = 3;  //单行定义多个变量
12     </script>

运行界面截图:

2. 字符串(String)

  • charAt()    根据索引取字符串的某个字符
  • trim()      去除空格
  • substring(a, b)        切片(切取大于等于a,小于b的内容)
  • indexOf() 获取字符的索引
  • length       字符串的长度

实例请看下图(清晰明了~~):

四、布尔/数组/字典

1. 布尔

Boolean(1)  返回true
Boolean(0)    返回false

2. 数组

定义数组的下面两种方式:

1 var names = [‘alex‘, ‘tony‘, ‘eric‘]
2 var names = Array(‘alex‘, ‘tony‘, ‘eric‘)

添加元素:

1 obj.push(ele)                   //追加
2 obj.unshift(ele)                //最前插入
3 obj.splice(index,0,‘content‘)   //指定索引插入  (0是固定写的)

实例请看下图:

移除:

1 obj.pop()                       //数组尾部移除
2 obj.shift()                      //数组头部移除
3 obj.splice(index,count)  //数组指定位置后count个字符

切片:

1 obj.slice(start,end)   //大于等于start,小于end

实例请看下图:

合并

  • newArray = obj1.concat(obj2)

翻转

  • obj.reverse()

字符串化

  • obj.join(‘_‘)

长度

  • obj.length

字典

1 var items = {‘k1‘: 123, ‘k2‘: ‘tony‘}

实例请看下图:

更多操作请参考:http://www.shouce.ren/api/javascript/main.html

五、序列化与反序列化

序列化:  JSON.stringify()
反序列化: JSON.parse()

undefined: 表示未定义值

null: 一个特殊值

六、循环

数组有两种循环方式,字典只有一种。

 1 var names = ["alex", "tony", "rain"];
 2  
 3 // 数组:方式一
 4 for(var i=0;i<names.length;i++){
 5     console.log(i);
 6     console.log(names[i]);
 7 }
 8  
 9  
10 // 数组:方式二
11 for(var index in names){
12     console.log(index);
13     console.log(names[index]);
14 }
15  
16 var names = {"name": "alex", "age":18};
17  
18  
19 // 字典:方式一
20 for(var index in names){
21     console.log(index);
22     console.log(names[index]);
23 }

实例请看下图:

在浏览器console界面,按住shift + enter可回车后继续写代码,而不是执行命令。

注意: for(var item in li){}  item是索引,这与python的循环不一样,千万别搞混了。

七、条件语句与异常处理

1. 条件语句

 1 //if条件语句
 2  
 3     if(条件){
 4  
 5     }else if(条件){
 6          
 7     }else{
 8  
 9     }
10  
11 var name = ‘alex‘;
12 var age = 1;
13  
14 // switch,case语句
15     switch(name){
16         case ‘1‘:
17             age = 123;
18             break;
19         case ‘2‘:
20             age = 456;
21             break;
22         default :
23             age = 777;
24     }

2. 异常处理

1 try{
2  
3 }catch(e) {
4  
5 }finally{
6  
7 }

条件语句与异常处理与C语言和python类似,没什么好讲的,过~~

八、函数

  1. 普通函数
  2. 匿名函数
  3. 自执行函数
 1     <script>
 2         //普通函数
 3         function func1(arg) {
 4             console.log(arg);
 5             return "zcl";
 6         }
 7         var ret = func1(123);
 8         console.log(ret);
 9
10         //匿名函数 f为函数名
11         var f = function (arg) {
12             console.log(arg);
13         };
14         f(12345);
15
16         //自执行函数:定义函数并自动执行
17         (function (arg) {    //自执行函数先写()(); 再在第一个括号写function
18             console.log(1234, arg);
19         })("zcl");
20     </script>

运行结果:

九、面向对象

 1 <script>
 2     function Foo (name,age) {
 3         this.Name = name;
 4         this.Age = age;
 5         this.Func = function(arg){
 6             return this.Name + arg;
 7         }
 8     }
 9     var obj = new Foo(‘zcl‘, 22);
10     console.log(obj.Name);
11     console.log(obj.Age);
12     var re = obj.Func(‘ good man‘);
13     console.log(re)
14 </script>

转发注明出处:http://www.cnblogs.com/0zcl/p/6416410.html

时间: 2024-10-22 04:27:02

【前端】:JavaScript的相关文章

nodejs 和web前端JavaScript什么区别

web前端javascript组成: ECMAScript,(是js的标准,js是它的具体实现和扩展,它描述语言的语法和基本对象,如:语法,运算符,语句,继承机制,数据结构以及一些内置对象) DOM(文档对象模型),描述处理网页内容的方法和接口,将整个文档document解析成dom树供用户使用js对文档进行处理. BOM(浏览器对象模型),描述可以和浏览器窗口交互的方法和接口(对象结构),如:window对象,history.location.navigator等. nodejs除了语言基础E

基于七牛API开发的前端JavaScript SDK

这是我们工程实践的内容,由于时间原因,具体不赘述,啊~主要还是因为懒o(╯□╰)o工程实践的题目为openedx后端管理系统的功能拓展与优化,我们要优化的一个主要功能便是实现视频本地化上传,我们采用的视频云服务商为七牛云存储,以下链接是基于它的API开发的前端JavaScript SDK,http://developer.qiniu.com/docs/v6/sdk/javascript-sdk.html我的任务是看完,找到需要改的参数,刚刚大概看了一下,很多东西不是很明白,先把我觉得需要改的参数

前端javascript模板

doT.js——前端javascript模板引擎问题备忘录 我手里维护的一个项目,遇到一个问题:原项目的开发人员在Javascript中,大量的拼接HTML,导致代码极丑,极难维护.他们怎么能够忍受的了这么丑陋.拙劣的代码呢,也许是他们的忍受力极强,压根就没想去寻找解决方法. 可是,我,是万难不能接受这种丑陋的解决方式的.有没有优雅的解决方法呢,于是在网上搜索到了doT.js. 主页很简洁,就一个页面,研究了一下,就顺利的上手了,相当的简单易用.主要分两步走. 1.写模板 写模板,就用官方文档里

菜鸟学前端--javascript基础

在学习过css相关的知识,有了前端工程师的一些基础知识.但要较好的掌握前端,必须要学习好javascript的知识. 下面将从基本语法.变量.关键字.保留字.语句.函数.BOM等角度阐释. 一.基本语法 javacript作为一种面向对象的.脚本级的轻量语言,与java一脉相承. 命名:区分大小写,弱类型定义(一般采用var,不限制类型). 行末分号可有可无(从经验上来看,推荐写,可以提高代码阅读质量). 括号用于代码段. 注释与C.java类型,单行用"//",段注释用"/

JAVA后台与前端JAVASCRIPT之间AES加密解密互通

调试了一天终于把java后台与javascript之间的AES加密解密成功了,记录一下过程. 后台java解密代码:解码算法及模式为 AES/CBC/PKCS5Padding key与iv要为16位 得到16的字符数组按照16进制编码转化为字符串 public static String encrypt(String content, String key) throws Exception { try { Key keySpec = new SecretKeySpec(key.getBytes

在C#后端处理一些结果然传给前端Javascript或是jQuery

在C#后端处理一些结果然传给前端Javascript或是jQuery,以前Insus.NET有做过一个例子<把CS值传给JS使用 >http://www.cnblogs.com/insus/archive/2011/05/04/2036271.html 是使用Literal控件来实现. 不过还是有些复杂. 本次Insus.NET再简化一些,把值传给前端的jQuery. 用户请求一个网页,送至服务器之后,然后传给客户端.因此服务端传值给jQuery或是javascript是件很容易的事.反之的话

前端JavaScript面试技巧

第1章 课程简介从几个常见面试开始,讨论针对一个题目的分析思路,总结题目对应的知识点.最后列出所有 JS 知识点的集合 -- JS 知识体系框架.1-1 课程简介(导学)1-2 前言1-3 几个面试题1-4 如何搞定所有面试题 第2章 JS基础知识(上)讲解 JS 基础语法相关的面试题,分析原理以及解答方法.这一章节讲解了基础知识的第一部分:变量的类型和计算.以及JS "三座大山" -- 原型.作用域和异步中的第一座大山:原型.2-1 变量类型和计算-12-2 变量类型和计算-22-3

小猿圈之2019年前端JavaScript面试题(二)

小猿圈前端讲师今天继续给你总结js面试题,前面一篇文章咱们已经有一片js基础部分面试题,今天小猿圈web讲师为你讲解js前端应用设计问题,一定要好好看哦,为了能赢在其他人前面. JavaScript前端应用设计问题 1.解释单向数据流和双向数据绑定. Angular1.x基于双向数据绑定,而React,Vue,Elm等基于单向数据流架构. 2.单向数据流架构在哪些方面适合MVC? MVC拥有大约50年的悠久历史,并已演变为MVP,MVVM和MV*.两者之间的相互关系是什么?如果MVC是架构模式,

Fundebug前端JavaScript插件更新至1.8.2,修复2个小BUG

摘要: 修复2个BUG,请大家及时更新. Fundebug前端异常监控服务 Fundebug是专业的程序异常监控平台,我们JavaScript插件可以提供全方位的异常监控,可以帮助开发者第一时间定位各种前端异常,包括: JavaScript执行错误 资源加载错误 HTTP请求错误 unhandledrejection WebSockect连接错误 并且,我们可以记录用户行为."录制"用户操作视频,帮助开发者快速复现BUG,提高Debug效率. Fundebug前端异常监控插件更新至1.

八大前端JavaScript趋势和工具

JavaScript的世界正在快速发展. 前端开发(和网络开发)的世界正在以极快的速度发展.如今,如果不借助前端或Webpack.React Hooks.Jest.Vue和NG元素,你会很快被远远抛下.不过,情况正在发生改变. 尽管开发人员和技术人员在前端领域中的数量逐年上升,生态系统却有标准化的趋势.新技术和工具的出现正在改变当下的规则. 总体趋势肯定会是一种基于组件构成的用户界面标准化,会影响从样式到测试甚至状态管理的所有方面,并且总体具有更好的模块度.这将包括围绕web组件.ES模块.组件