一个完整的Javascript实现是由三个不同的部分组成:

1、核心 ECMA Javascript

2、浏览器对象模型(DOM) document object model (整合JS、html、CSS)

3、浏览器对象模型(BOM)  broswer object model  (整合JS和浏览器)

Javascript的两种引入方式:

1、直接写在html中的<script>标签中

2、导入外部JS文件,引入格式:<script src="hello.js"></script>

变量:

javascript中声明变量使用var,如var a = 1;同一行也可以声明多个变量,多个变量之间用逗号隔开,如var a =1,b=2,c=3;

每行结束可以不加分号,没有分号会以换行符作为每行结束。

单行注释用//,多行注释用/*  */

标识符:就是我们通常用的变量名

关键字:就是语言定义好的一些具有特殊功能的词,如var、functon等

保留字:就是现在还没有使用,以后可能作为关键字的一些词。

基本数据类型:

Number :整型、浮点型

String:通过单引号或双引号构成

Boolean:true、false (小写)

Null:占一个对象的位置

Undefined: 如果声明了某个变量,但是未对它赋值,则该变量是undefined,这个值是系统自动赋的

引用数据类型:

object

数据类型的转换:

数字 + 字符串:数据转换为字符串

数字 + 布尔值:true转换为1,false转换为0

字符串 + 布尔值:布尔值转换为字符串true或false

parseInt(3.14);

parseInt("3.14");

parseInt("3.14a");

parseInt("a3.14");  //NaN:当字符串转换成数字失败时就是NaN;属于Number数据类型

alert(NaN==0);

alert(NaN>0);

alert(NaN<0);

alert(NaN==NaN);

以上4个都是false。NaN数据在表达式中结果一定为false,除了!=

运算符

算术运算符

++   --

var a = 1;

var b = a++;  //先赋值后加减  a+=1

alert(b);  //1

alert(a);  //2

var a = 1;

var b = ++a;   //先加减后赋值

alert(b);  //2

alert(a);  //2

var x = 1 ;

alert(x++);   //其实是x=x+1,而alert的是前最前的面的一个x,由于此种方式是后赋值,所以alert出来的是1,但是执行完x=2

alert(++x);

alert(--x);

alert(x--);

一元加减法:

var a=3;  //3

var a="3"  //3

var a="3.2"  //3.2

var a="123a456"  //NaN

var a="123a"  //NaN

var a="a123"  //NaN

b=+3

alert(b)

alert(typeof(b))

逻辑运算符:

等于 ( == ) 、不等于( != ) 、 大于( > ) 、 小于( < ) ?大于等于(>=) 、小于等于(<=)
与 (&&) 、或(||) 、非(!)
1 && 1 = 1 1 || 1 = 1
1 && 0 = 0 1 || 0 = 1
0 && 0 = 0 0 || 0 = 0

控制语句:

if 控制语句:

if (表达式){
语句1;
......
}else{
语句2;
.....
}

switch控制语句:

switch基本格式
switch (表达式) {
  case 值1:语句1;break;
  case 值2:语句2;break;
  case 值3:语句3;break;
  default:语句4;
}

异常处理:

try { //这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行 }

catch (e)  { //如果try代码块中抛出了异常,catch代码块中的代码就会被执行。

   //e是一个局部变量,用来指用error对象或其它抛出的对象 }

finally { //无论try中代码是否有异常抛出(甚至是try代码块中有retrun语句),finally代码块中始终会被执行 }

对象分类:

Javascript的对象分为两种,一种是本地对象(native object)、宿主对象(host object)。本地对象包括内置对象。宿主对象就是浏览器和系统提供的对象。包括DOM和BOM

ECMAScript

Dom:操作与html相关的

BOM:操作与浏览器相关的

object对象:ECMAScript中的所有对象都由这个对象继承而来;Object对象中的所有属性和方法都会出现 在其它对象中

查看数据类型的两种方法:typeof、instanceof

typeof只能查看基本数据类型:

    a="hello world!";
b=23.34;
c=[1,2,3];
alert(typeof(a)); //string
alert(typeof(b)); //number
alert(typeof(c)); //object

instanceof用来判断某个对象是不是属于某种类型:

    var a="hello world!";
var a1=new String("hello a1");
var b=23.34;
var c=[1,2,3];
alert(a instanceof String); //false,这种方法对简写的变量好像没法判断
alert(a1 instanceof String); //true
alert(b instanceof Number); //false
alert(c instanceof Array); //true

11种内置对象:

包括:Array,String,Date,Math,Boolean, Number,Function,Global,Error,RegExp,Object

创建对象:

var aa = new String("hello");

var bb = new Array("星期一”,"星期二”,"星期三”,"星期四”)

Array对象:

数组是有序的,可以通过下标取值。

创建Array有两种方式,一种是直接创建,另一种是实例对象。

var arr=[1,2,3,4,'hello']

Array的属性:

获取数组元素的个数:length

    arr=[2,3,'eee',5555];
alert(arr.length); //

Array的join方法:

在python中join是字符串的方法,在javascript是Array的方法。

javascript中数组的join方法是将数组中的元素用方法括号中的字符拼接起来。

    arr=[2,3,'eee',5555];
ret=arr.join("+++++++");
alert(ret); //2+++++++3+++++++eee+++++++5555

Array的push、pop方法:

push为压栈(将元素压到数组的最后面)

pop为弹栈(弹出最后一个元素)

    arr=[2,3,'eee',5555];
arr.push(34,66,'world'); //直接在原数据上面进行操作
alert(arr); //2,3,eee,5555,34,66,world
ret=arr.pop(); //弹出数组最后一个元素,并且将弹出的元素作为返回值返回
alert(ret); //world

Array的unshift、shift方法:

unshift为添加元素(将元素添加到数组最前面)

shift为移除元素(将数组最前面的元素移除)

    arr=[2,3,'eee',5555];
arr.unshift(666);
alert(arr); //666,2,3,eee,5555
arr.shift();
alert(arr); //2,3,eee,5555

函数:

function 创建方式1 (推荐方式)

function fun1() {
alert(123);
return 8
} var ret = fun1()
alert(ret)

创建方式2:

var fun2=new Function ("参数1","参数n","函数体");
var add = new Function ("a","b","alert(a+b)")
add(1,2)

function的属性和方法:

alert(add.length);   length是参数的个数

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

匿名函数:

// 匿名函数
var func = function(arg){
return "tony";
} // 匿名函数的应用
(function(){
alert("tony");
} )() (function(arg){
console.log(arg);
})('123')

Python:Day44 Javascript的更多相关文章

  1. Python:Day46 Javascript DOM

    history对象: History 对象包含用户(在浏览器窗口中)访问过的 URL.窗口之间是相互独立的. <input type="button" onclick=&qu ...

  2. Python:Day45 Javascript的String字符串

    typeof只能判断普通数据类型, 对于复杂的只是判断出来是一个Object: instanceof 可以判断数据是否是某一类型: alert(s instanceof String); String ...

  3. 以Python角度学习Javascript(一)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAO4AAADZCAIAAACo85tgAAAgAElEQVR4Aey9SdAs13XnV/P8jW8e8D ...

  4. python中执行javascript代码

    python中执行javascript代码: 1.安装相应的库,我使用的是PyV8 2.import PyV8 ctxt = PyV8.JSContext()     ctxt.enter()     ...

  5. Python:渗透测试开源项目

    Python:渗透测试开源项目[源码值得精读] sql注入工具:sqlmap DNS安全监测:DNSRecon 暴力破解测试工具:patator XSS漏洞利用工具:XSSer Web服务器压力测试工 ...

  6. Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)

    Python:高级主题之(属性取值和赋值过程.属性描述符.装饰器) 背景 学习了Javascript才知道原来属性的取值和赋值操作访问的“位置”可能不同.还有词法作用域这个东西,这也是我学习任何一门语 ...

  7. Python:Python学习总结

    Python:Python学习总结 背景 PHP的$和->让人输入的手疼(PHP确实非常简洁和强大,适合WEB编程),Ruby的#.@.@@也好不到哪里(OO人员最该学习的一门语言). Pyth ...

  8. 【Python全栈-JavaScript】JavaScript入门

    JavaScript基础知识点 一.JavaScript概述 参考:http://www.w3school.com.cn/b.asp JavaScript的历史 1.1992年Nombas开发出C-m ...

  9. python之路 JavaScript基础

    一.JavaScript简介 JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为 浏览器的一部分,广泛用于客户端 ...

随机推荐

  1. Http协议请求头、响应头、响应码

    Http部分请求头 Accept 客户机通过这个头,告诉服务器,它支持哪些数据类型 Accept-Charset 客户机通过这个头,告诉服务器,它支持的编码 Accept-Encoding 客户机通过 ...

  2. PHP无限极分类原理

    1.递归:程序调用自身的编程技巧称为递归 2.案例: /** * @param 递归 $[name] */ function deeploop(&$i=1){ echo $i; $i++; i ...

  3. 7;XHTML表单

    1.表单的功能结构 2.文本栏.密码栏.隐藏栏 3.复选栏.单选栏 4.窗体栏位.区块栏位 5.按钮.图像按钮 6.允许上传文件 7.表单的外框和标题 8.元件的次序和快捷键 表单是提供让读者在网页上 ...

  4. JS与CSS阻止元素被选中及清除选中的方法总结

    有时候,我们希望阻止用户选中我们指定区域的文字或内容. 举个栗子,有时候用户在一个区域执行频繁的点击操作,一不小心傲娇地点多了,就会选中当前区域的内容. 再举个栗子,制作轮播组件的时候,点击下一页,若 ...

  5. jQuery与JS中的map()方法使用

    1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...

  6. 洛谷P3966 [TJOI2013]单词(AC自动机)

    题目描述 小张最近在忙毕设,所以一直在读论文.一篇论文是由许多单词组成但小张发现一个单词会在论文中出现很多次,他想知道每个单词分别在论文中出现了多少次. 输入输出格式 输入格式: 第一行一个整数N,表 ...

  7. 三星450R5J windows8.1系统重装小结

    本人一台三星450R5J,到今年也差不多五六年了.虽然颜值很高,但是用久了真的不行,毕竟是属于商务型笔记本,这里我就不晒配置了. ​ 比较一下四五年前的三星与现在使用的华硕,三星看起来更鲜. ​ ​准 ...

  8. saltstack部署配置

    共计使用三台虚拟机进行部署实验,系统环境:centos7.3 在master上进行部署配置: 配置主机名 [root@localhost ~]# hostname salt-master [root@ ...

  9. Salesforce 大量数据部署的最佳实践

    本文参考自官方文档.原文链接 大量数据部署对Salesforce的影响 当用户需要在Salesforce中部署大量数据的时候,部署的过程往往会变慢.这时就需要架构师或开发者设计出更好的过程来提高大量数 ...

  10. 接口自动化 [授客]基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0

    基于python+Testlink+Jenkins实现的接口自动化测试框架V3.0   by:授客 QQ:1033553122     博客:http://blog.sina.com.cn/ishou ...