JS基础语法
/** JavaScript * 1.0
* 对象 */ function Test(){ var book = { // 创建对象. name: "中华上下五千年" , // 属性name的值为"中华上下五千年". price: "99.00" , flag: true // flag的值为true. }; // 花括号标记了对象的结束. /* 对象的两种取值方式: 通过"."或者"[]"来访问对象属性 * : book.name * : book["name"] */ book.healthy = "Y"; // 通过赋值创建一个新的属性. console.log(book.name); console.log(book["name"]); // 此种方式必须加引号还说明这是对象的属性名,否则取不到. console.log(book); }
/** JavaScript * 1.1 * 数组 */ function Test(){ var arr = [2,3,4,5]; // 具有四个值的数组,由"["和]"划定边界. /* arr[0] 获取数组中第一个元素的值. * arr.length 获取数组的长度. * arr[arr.length-1] 获取数组中最后一个元素. */ console.log(arr[0]); // 数组中第一个元素的索引为0 console.log(arr.length); console.log(arr[arr.length-1]); console.log(arr[4]="9"); // 通过赋值来添加新元素. console.log(arr[4]="6"); // 通过赋值来改变现有元素的值. var arrs = []; // arrs是一个空数组,此时它具有0个元素. console.log(arrs.length); }
/** JavaScript * 1.2 * 数组和对象中都可以包含另一个数组或对象. */ function Test(){ /** 具有两个元素的数组 * 其中每个元素都是一个对象 */ var arr = [ {name:"张国荣",identity:"歌手"}, {name:"黑虎",identity:"锦衣卫"} ]; /** 这是一个包含两个属性的对象 * 其中每个属性都是一个数组. * 数组的元素也是数组. */ var book = { adult:[1,1,2], juveniles:[1,1,1] }; }
/** JavaScript * 1.3 * 基础运算. */ function Test(){ console.log("2"+"3"); // 字符串连接. console.log(6+1); // 基础运算. var count = 0; // 定义一个变量. console.log(count++); // 自增1. console.log(count--); // 自减1. console.log(count += 2); // 自增2: 和"count = count + 2;"写法一样. console.log(count *= 2); // 自乘2: 和"count = count * 2;"写法一样. count; // 变量本身也是一个表达式. /**相等关系运算符来判断两个值是否相等. *不等于,大于,小于运算符的运算结果是true或false. */ var x=2; y=3; console.log(x==y); // false. console.log(x!=y); // true. console.log(x<y); // true. console.log(x<=y); // true. console.log(x>y); // false. console.log("two"=="three"); // false. console.log("two">"three"); // false. console.log(false == (x>y)); // true. /**粗略的讲短语是表达式的话,那整个句子就可以认为是语句. *表达式仅仅计算出一个值,但并不做任何操作,他并不会改变程序的运行状态. *而语句并不包含一个值(或者它所包含的值我们不怎么关心),但它们改变程序的运行状态. */ }
/** JavaScript * 1.4 * 函数(函数是带有名称和参数的代码段,可以一次定义多次调用). */ function add(x,y){ // 定义一个名为add的函数,带有参数x,y return x+y; // 计算函数的值,返回两个参数之和. } // 函数代码块是由花括号包裹起来的部分. add(1,1); // 调用函数add(),传入参数1和1,最终返回2. var arr = function(x,y){ // 函数是一种值,可以赋值给变量. return x*y; // 计算函数的值. }; // 注意: 分号标示了赋值语句的结束.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script src="../js/jquery-3.3.1.min.js"></script> </head> <body> <p><button onclick="see();" >按钮</button></p> </body> <script type="text/javascript"> /* JavaScript
* 1.5
*下段代码展示了如何在javaScript中定义一个类来表示2D平面几何中的点. * 这个类实例化的对象拥有一个名为r()的方法,用来计算该点到原点的距离. * prototye属性: 向对象添加属性和方法。 */ // 定义一个构造函数以初始化一个新的Point对象 function Point(x,y){ // 按照惯例,构造函数均以大写字母开始 this.x = x ; // 关键字this指代初始化的实例 this.y = y ; // 将函数参数存储为对象的属性 } // 不需要return // 通过给构造函数的prototye对象赋值,来给Point对象定义方法. Point.prototype.r = function(){ return Math.sqrt( this.x * this.x + // this指代调用这个方法的对象 this.y * this.y // 返回x² + y² 的平方根 ); }; // 使用new关键字和构造函数来创建一个实例 var p = new Point(1,1); // 平面几何中的点(1,1) // Point的实例对象p(以及所有的Point实例对象)继承了方法r() p.r(); // 1.414 // 调用实现 function see(){ //alert(p.r()); console.log(Point.prototype); } </script> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> <script src="../js/jquery-3.3.1.min.js"></script> </head> <body> Hello <button onclick="hide(this,true); debug('hide button 1'); ">Hide1</button> <button onclick="hide(this); debug('hide button 2'); ">Hide2</button> World </body> <script type="text/javascript"> /*在document中的一个指定区域输出调试信息 *如果document中不存在这样的一个区域则创建一个. */ function debug(msg){ // 通过查看HTML元素id属性来查找文档的调试部分. var log = document.getElementById("debuglog"); // 如果这个元素不存在,则创建一个. if(!log){ log = document.createElement("div"); // 创建一个新的<div>元素. log.id = "debuglog"; // 给这个元素的HTML元素id 赋值. log.innerHTML = "<h1>Debug Log</h1>"; // 定义初始内容. document.body.appendChild(log); // 将其添加到文档的末尾. } // 将消息包装在<pre>中,并添加至log中. var pre = document.createElement("pre"); // 创建<pre>标签. var text = document.createTextNode(msg); // 将msg添加在一个文本节点中. pre.appendChild(text); // 将文本添加至<pre>. log.appendChild(pre); // 将<pre>添加至log. } function hide(e, reflow){ // 通过javaScript操纵样式来隐藏元素e. if(reflow){ // 如果第二个元素是true. e.style.display = "none"; // 隐藏这个元素,其所占的空间也随之消失. }else{ // 否则 e.style.visibility = "hidden"; // 将e隐藏,但是保留其所占用的空间. } /* visibilty属性规定元素是否可见 * 即使不可见的元素也会占据页面上的空间,一般会使用display属性. */ } function highlight(e){ // 通过设置CSS类来高亮显示e. /* 简单的定义或追加HTML类属性 * 这里假设CSS样式表中已经有"hilite"类的定义. */ if(!e.className) e.className = "hilite"; else e.className += "hilite"; } </script> </html>