1.JavaScript基础

2.语法规则

3 常用内置对象

4 函数

5 伪数组

6.异常处理

1.1 web前端分为三层

  • HTML:从语义的角度,描述页面结构

  • CSS:从审美的角度,描述样式(美化页面)

  • JavaScript:从交互的角度,描述行为(提升用户体验)

1.2特性

  弱变量类型的语言,变量只需用var来声明

  带有界面效果,属于前台语言(运行在用户的终端网页上,而不是在服务器上),它无法操作数据库

1.3组成

  ECMAScript:JavaScript语法标准。包括变量,表达式,运算符,函数,if语句等

  DOM:文档对象模型,用来获取或者设置文档中标签的属性,例如获取或者设置input表单的value值。document.getElementById("").value;  这属于DOM

  BOM:浏览器对象模型,用来获取或设置浏览器的属性、行为,例如:新建窗口、获取屏幕分辨率、浏览器版本号等。 比如 alert();弹出一个窗口,这属于BOM

2.语法规则

  每一条语句末尾必须加上分号(方便今后压缩文件能够正常运行)

  所有符号必须是英文

  注释(单行//或者多行/*  */)

2.1引入方式

1 直接编写
<script>
alert('hello yuan')
</script>
2 导入文件
<script src="hello.js"></script>

2.2JS语句

变量(variant):使用var关键字,一行能够声明多个变量,并且可以是不同类型

var name="yuan", age=20, job="lecturer";

alert(" ")     网页弹出警示框

console.log("")  控制台输出

prompt()       专门弹出能够让用户输入的对话框

例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
//alert直接使用,不用变量
alert("下面我要弹出一个对话框!!")
// 记住,prompt语句中,不管用户输入什么内容,都是字符串。这里必须有一个变量用来接收用户输入的值
var a = prompt("你是不是傻?");
console.log(a);
</script>
</head>
<body> </body>
</html>
2.2.1变量类型:

可以使用typeof()来查看变量类型

1.数值型(number)

特例:

var a1 = 5/0;
console.log(typeof e1)
//Infinity 无限大. number类型

2.字符串型(string)

注:字符串也是可以相加的,如果符号中存在字符串类型(至少有一个),其它全为数字,那么拼接起来输出也是字符串。

且数字型字符串也可以直接和数字进行运算(字符串型数字+数值=数值)

3.布尔类型(boolean),任何数据类型都能转为boolean类型

4.空类型(null)
5.未定义类型(underfined)

2.2.2变量类型的转换:

parseInt(),可以将字符串转成数字

特性:

  它还再带筛选功能,只保留字符串最开头的数字,后面的中文自动截掉

  还自带截断小数功能,直接取整,不四舍五入

console.log(parseInt("528today"));
//后台输出528
string(),tostring(),强制类型转换
2.2.3运算符

  和python语法中一致,略

特例:

不能对字符串进行加减乘除运算,只能拼接,否则会报错(NaN),即not a number,记住,这也是个number类型

2.2.4流程控制

if 、if-else、if-else if-else

if (true) {
//执行操作
}else if(true){
//满足条件执行
}else if(true){
//满足条件执行
}else{
//满足条件执行
}

逻辑与运算&&

逻辑或运算||

switch使用(它比else if 语句结构更加清晰,使程序可读性提高)

//每个case条件完后必须输break跳出,如果不写,直到遇到下面的break才会停止
switch (表达式) {
case 值1:语句1;break;
case 值2:语句2;break;
case 值3:语句3;break;
default:语句4;
}

例:

<script type="text/javascript">
var number = 10;
switch(number){
case 8:
console.log("小了")
break;
case 10:
console.log("6666")
break;
case 13:
console.log("大了")
break;
default:
console.log("退出")
}
</script>

for循环

for (var i = 10; i >= 0; i--) {
console.log(i)
}

练习:计算1-100之间所有数字的和

<script type="text/javascript">
var sum = 0;
for (var i = 1; i <= 100; i++) {
sum += i
}
console.log(sum)
</script>

在浏览器中输出直角三角形(想想在Python中如何实现9*9乘法表的)

for(var i = 1;i<6;i++){
for(var j = 1;j <= i;j++){
document.write("*")
}
document.write('<br>')
}

3 常用内置对象

数组Array(在python内其实就是列表)

创建方式:

var colors = ['red','color','yellow'];

常用方法:

简单介绍:

join() 将数组中的元素使用指定的字符串连接起来,它会形成一个新的字符串

var score = [1,2,3,5,6];
var str = score.join('|');
console.log(str);
//1|2|3|5|6

判断是否为数组:isArray()

字符串string

常用方法

replace(a,b) 将字符串a替换成字符串b

var a = '1234567755';
var newStr = a.replace("4567","****");
console.log(newStr);//123****755

Date日期对象

常用方法

例:

//创建日期对象
var myDate=new Date(); //获取一个月中的某一天
console.log(myDate.getDate()); //返回本地时间
console.log(myDate().toLocalString());//2018/5/27 下午10:36:23

Math内置对象

常见方法

例: 求两个数的最大值和最小值

console.log(Math.max(2,5));//
console.log(Math.min(2,5));//

获取0到1之间的随机小数

var ran = Math.random();
console.log(ran);

## 取100-200之间的随机数,背过公式:min - max之间的随机数: min+Math.random()*(max-min)

4函数

  作用:简化编程,模块化

  注意:js的函数加载执行与python不同,它是整体加载完才会执行,所以执行函数放在函数声明上面或下面都可以

    sum(3,4);
sum("hello","world");
function sum(a,b){
console.log(a+b);
}
//
//helloworld

函数返回值

       console.log(sum(3, 4));

        //函数:求和
function sum(a, b) {
return a + b;
}

5 伪数组(arguments)

  代表的是实参,只在函数中使用

5.1返回函数实参的个数:arguments.length

    fn(2,4);
fn(2,4,6);
fn(2,4,6,8); function fn(a,b,c) {
console.log(arguments);
console.log(fn.length); //获取形参的个数
console.log(arguments.length); //获取实参的个数
console.log("----------------");
}

结果:

清空数组:

     var array = [1,2,3,4,5,6];

    array.splice(0);      //方式1:删除数组中所有项目
array.length = 0; //方式1:length属性可以赋值,在其它语言中length是只读
array = []; //方式3:推荐

6.异常处理

try {
//这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
}
catch (e) {
// 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。
//e是一个局部变量,用来指向Error对象或者其他抛出的对象
}
finally {
//无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。
}

主动抛出异常 throw Error('xxxx')

前端JavaScript之ECMA的更多相关文章

  1. 前端JavaScript规范

    前端JavaScript规范 http://www.imooc.com/article/1402 http://greengerong.com/blog/2015/05/09/qian-duan-ja ...

  2. 实例演示 kino.razor (前端 Javascript 模板工具,Razor 风格)的使用

    前言 对于习惯了 ASP.NET MVC Razor 模板引擎的人来说,比如我,一直在寻找前端 Javascript 端的 Razor 模板工具.这之前,我也了解到很多Javascript 端的模板工 ...

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

    在C#后端处理一些结果然传给前端Javascript或是jQuery,以前Insus.NET有做过一个例子<把CS值传给JS使用 >http://www.cnblogs.com/insus ...

  4. 前端javascript模板

    doT.js——前端javascript模板引擎问题备忘录 我手里维护的一个项目,遇到一个问题:原项目的开发人员在Javascript中,大量的拼接HTML,导致代码极丑,极难维护.他们怎么能够忍受的 ...

  5. Web前端-JavaScript基础教程上

    Web前端-JavaScript基础教程 将放入菜单栏中,便于阅读! JavaScript是web前端开发的编程语言,大多数网站都使用到了JavaScript,所以我们要进行学习,JavaScript ...

  6. 前端javascript

    前端 JavaScript   javaScript----数据库jquery $(function(){ 执行代码   });  基本语法:$(selector).action() $(" ...

  7. Fundebug前端JavaScript插件更新至1.2.0

    摘要: Fundebug的前端JavaScript错误监控插件更新至1.2.0:支持监控WebSocket连接错误:修复了监控unhandledrejection错误的BUG,即未用catch处理的P ...

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

    摘要: 修复2个BUG,请大家及时更新. Fundebug前端异常监控服务 Fundebug是专业的程序异常监控平台,我们JavaScript插件可以提供全方位的异常监控,可以帮助开发者第一时间定位各 ...

  9. Web前端-JavaScript基础教程下

    Web前端-JavaScript基础教程下 <script>有6个属性: async对外部脚本有效,可以用来异步操作,下载东西,不妨碍其他操作. charset为src属性指定字符集. d ...

随机推荐

  1. window系统下SVN服务器和客户端的搭建和使用

    SVN服务器下载地址: http://subversion.apache.org/packages.html 这里我选用VisualSVN server 服务端和 TortoiseSVN客户端搭配使用 ...

  2. CAD安装失败怎样卸载CAD 2014?错误提示某些产品无法安装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  3. JQuery 的跨域方法 可跨任意网站

    JS的跨域问题,很多人在网上找其解决方法,教其用IFRAME去解决的文章很多,真有那么复杂吗?其实很简单的,如果你用JQUERY,一个GETJSON方法就搞定了,而且是一行代码搞定. 下面开始贴出方法 ...

  4. hql语句cast用法

    hql中cast为转换函数 cast(a as b);a是要转换的数据,b是目标类型(不是数据库类型名,是hibernate类型名:比如目标类型是varchar,必须写string) eg:selec ...

  5. 了解委托(Delegate)

    委托是一种全新面向对象语言特性,运行在.Net平台 基于委托,开发事件驱动程序变得非常简单 使用委托可以大大简化多线程变成的难度 理解委托 int a:   //定义变量 a=100://给变量赋值 ...

  6. Javascript 对象(Object)

    //声明方式 //调用 Object构造函数创建 var user = new Object(); user.name = "小白"; user.say = function () ...

  7. vue中 eCharts 自适应容器

    在 vue 脚手架开发中,echarts图表自适应容器的方法: 父组件: <template> <div class="statistics_wrap"> ...

  8. jQuery实现焦点图[兼容ie7+]

    HTML: <div class="freehand" id="freehand"> <h1>宠物手绘</h1> <d ...

  9. 创建Podspec 并且发布到github spec

    昨天,花了点时间,把自己的代码做成framework,但是发现,每次迁移项目或者更新项目都是一件很头疼的事情,索性,也跟着时尚了一回,把所有代码都扔到git里面进行管理,通过cococapods直接安 ...

  10. LeeCode 第1题

    要求: 给定一个整数(int)数组(Array)和一个目标数值(Target),找出数组中两数之和等于目标值(target)的两个元素的下标位置, 假设:结果唯一,数组中元素不会重复. 本人思路:分别 ...