JavaScript常用常见函数写法汇总-----JavaScript

刺骨的言语ヽ痛彻心扉 2024-02-19 08:07 85阅读 0赞
  1. <!DOCTYPE html>
  2. <!-- 这是HTML的注释 -->
  3. <html lang="en" id="myHtml">
  4. <head>
  5. <!-- 这里不是设置了编码,而是告诉浏览器,用什么编码方式打开文件避免乱码 -->
  6. <meta charset="UTF-8">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <title>HtmlAll</title>
  9. <!--
  10. <script>
  11. alert("Head")
  12. </script>
  13. -->
  14. </head>
  15. <body bgcolor="grey">
  16. <script type="text/javascript" src="js.js">
  17. alert("js")
  18. // 暴露在脚本块之内的程序,在页面打开的时候执行,遵循自上而下的方式执行
  19. // 不需要事件(可以用来做特殊操作)
  20. // 脚本块放到Head里面甚至是HTML标签之外都可以执行
  21. // JS代码的注释方式和java是一样的
  22. // 还有alert方法会阻塞整个HTML页面的加载,直到我们按下确认为止
  23. </script>
  24. <!-- 引入外部独立的JS代码,和我们直接写在script里面是一样的 -->
  25. <!-- 同一个js文件可以引入两次,但是没必要 -->
  26. <!-- 结束的script标签必须有,不能是单标签的 -->
  27. <!-- 引入了代码块后,script标签内的代码就不会被执行了 -->
  28. <!-- JS是一门事件驱动型的语言,依靠事件去驱动,然后执行相应的程序 -->
  29. <!-- 在JS中有许多事件用来触发,任何事件都会对应一个用来触发的事件句柄 -->
  30. <!-- 事件和事件句柄的区别是,句柄前面会有一个on比如说onclick -->
  31. <!-- 以下逻辑是,将我们的函数注册到按钮上,等待click事件发生,然后浏览器调用我们写好的函数,这就叫回调函数 -->
  32. <input type="button" onclick="Test()" value="加载了"/>
  33. <input type="button" value="Hello" onclick="sum(10)"/>
  34. <input type="button" value="Test" id="button" onclick="sayHello('zhangsan')"/>
  35. <input type="button" value="测试" onclick="test1('LISI')"/>
  36. <input type="button" value="按一下" onclick="access()"/>
  37. <input type="button" value="叫名字" onclick="sayName()"/>
  38. <input type="button" value="typeOf" onclick="T()"/>
  39. <!-- Undefined类型只有一个值,这个值就是undefined -->
  40. <!-- 当一个值没有手动赋值,系统默认赋值undefined -->
  41. <!-- 或者也可以给一个变量手动赋undefined -->
  42. <!-- Number类型包括那些值? -->
  43. <!-- 整数小数正数负数,不是数字(NAN),无穷大Infinity -->
  44. <input type="button" value="Number" onclick="cALL()"/>
  45. <!-- 关于什么情况下出现nan,但运算结果不是一个数字的时候结果是nan -->
  46. <!-- 当运算结果应该是一个数字最后却不是数字就是nan -->
  47. <input type="button" value="nan()" onclick="nan()"/>
  48. <!-- 当除数为零的时候,结果为无穷大,Java中报错,但是在JS中是无穷大Infinity -->
  49. <input type="button" value="Infi()" onclick="Infi()"/>
  50. <input type="button" value="isNan" onclick="isN(12,'abs')"/>
  51. <input type="button" value="Int" onclick="fl()"/>
  52. <input type="button" value="flag" onclick="flag()"/>
  53. <input type="button" value="bTes" onclick="bTest()"/>
  54. <input type="button" value="sts" onclick="sy()"/>
  55. <input type="button" value="stest" onclick="SP()"/>
  56. <input type="button" id="myBtn" value="Halla"/>
  57. <input type="button" id="myBtn1" value="Halla"/>
  58. <input type="text" id="choose"/>
  59. <input type="button" id="osx" value="按下去"/>
  60. </body>
  61. </html>
  62. <!-- <script>
  63. alert("outside")
  64. </script> -->

<!DOCTYPE html>






HtmlAll









































  1. // 标识符必须由数字字母下划线美元符号组成,别的符号不允许
  2. // 不能以数字开头
  3. // 严格区分大小写
  4. // 标识符不能用关键字做标识符
  5. // 理论上没有长度限制
  6. // 类名和接口首字母大写,后面每个单词首字母大写
  7. // 方法名和变量名,首字母小写,后面每个单词首字母大写
  8. // 所有的常量名,全部大写,单词和单词之间用下划线隔开
  9. // 驼峰命名,见名知意
  10. // java是一种强类型语言,java存在编译阶段
  11. // 在java中,在编译阶段就确定了变量类型,一旦确定类型就无法转换,语法类型转换,不是真转换
  12. // int i = 10;double d = i;不是把i变量给了d,把i变量内容改变了
  13. // 而是把i变量保存的值10给了变量d,i变量还是int类型,值为10
  14. // byte short int long float double boolean char
  15. // 1248 4812
  16. // JS是一个弱类型语言,没有编译阶段,一个变量可以随意赋值,什么类型都行
  17. // undefined在JS里面是一个具体的值,当我们没有给变量赋值的时候,他的值就是undefined
  18. // java中我们写方法
  19. // 修饰符列表 返回值类型 方法名(形式参数列表){方法体}
  20. // public static boolean login(String username,String password){return true;}
  21. //boolean flag = user.login(username,password);
  22. //这里我们实际调用方法的时候传进去的就是实参,实际参数必须与形参一一对应
  23. // function 函数名(形参类型){函数体}
  24. //blur失去焦点
  25. //focus获得焦点
  26. //click鼠标单击
  27. //dblclick鼠标双击
  28. //keydown按下键盘
  29. //keyup键盘松开
  30. //mousedown鼠标按下
  31. //mouseover鼠标松开
  32. //mousemove鼠标移动
  33. //mouseoutout鼠标移开
  34. //mouseup鼠标弹起
  35. //reset表单重置
  36. //submit表单提交
  37. //change下拉选项改变
  38. //select文本选中
  39. //load页面加载完毕(全部页面元素加载到内存)
  40. // 任何一个事件都会对应一个事件句柄,事件句柄就是在事件前添加on
  41. //sayHello函数被称为回调函数(自己写出函数,不是自己调用如用户调用)
  42. function sum(a,b)
  43. {
  44. // a和b都是变量名,他们都是形参,变量名随意
  45. // 这里我们可以使用typeof来判断或者说限定这里就是数字number
  46. // typeof的运算结果是六个字符串之一,字符串是全部小写的
  47. // 在JS中使用==来做字符串判断,没有equals方法(这是java的Object类的一个方法)
  48. var i = 100;
  49. if(typeof a == "number" && typeof b == "number")
  50. {
  51. alert(a + b);
  52. }
  53. else
  54. {
  55. alert("必须都是数字")
  56. }
  57. }
  58. var i = 100;
  59. function access()
  60. {
  61. //这里访问的是全局变量
  62. alert(i);
  63. }
  64. function myFun()
  65. {
  66. //如果一个变量在声明的时候没有加上var
  67. //那么无论在哪里声明的,他都是全局变量
  68. //而且还要被调用一次
  69. username = "jack";
  70. }
  71. //需要调用一次
  72. myFun();
  73. function sayName()
  74. {
  75. // 就近原则访问Rose局部变量
  76. // var username = "Rose";
  77. alert(username);
  78. }
  79. function count(a,b)
  80. {
  81. return a + b;
  82. }
  83. // JS中的函数不需要重载(重载是方法名相同,形参不同(可以是数量,类型,顺序不同))
  84. // 调用函数count
  85. function sayHello(username)
  86. {
  87. alert("hello" + username);
  88. var w = count(10,30);
  89. alert(w);
  90. // var ret = count("jack");
  91. var ret = count();
  92. // 一个值赋值了,另一个值没赋值默认undefined
  93. // 形成了字符串拼接
  94. // NaN是一个具体存在的值,表示该值不是数字
  95. alert(ret)
  96. var sum = count(1,2,3);
  97. //超过了数量,只用了前面的
  98. // js的函数调用时,参数类型没有限制,参数个数没有限制
  99. alert(sum)
  100. }
  101. function TestI()
  102. {
  103. var i = 100;
  104. i = false;
  105. i = "abc";
  106. i = new Object();
  107. i = 3.14;
  108. alert(i)
  109. }
  110. function Test()
  111. {
  112. var a,b,c = 200;
  113. alert(undefined);
  114. alert("a =" + a);
  115. alert("b =" + b);
  116. alert("c =" + c);
  117. // 一个值我们没声明直接用,就会报错
  118. // alert(age);
  119. }
  120. function test1(username)
  121. {
  122. alert(username)
  123. }
  124. // js中同名函数会彼此覆盖
  125. // 后声明的会覆盖前面的函数,谁后谁做主
  126. //直接从内存中抹去了之前的函数了
  127. function test1()
  128. {
  129. var u = sum(false,false);
  130. alert(u);
  131. }
  132. function T()
  133. {
  134. var o;
  135. alert(typeof o);
  136. var p = 10;
  137. alert(typeof p);
  138. var k = "abc";
  139. alert(typeof k);
  140. var u = null;
  141. alert(typeof u);
  142. var f = true;
  143. alert(typeof f);
  144. var obj = new Object();
  145. alert(typeof obj);
  146. function sHello(){}
  147. alert(typeof sHello())
  148. }
  149. function cALL()
  150. {
  151. var v = 1;
  152. alert(typeof v);
  153. var v1 = 3.14;
  154. alert(typeof v1);
  155. var v2 = -100;
  156. alert(typeof v2);
  157. var v3 = NaN;
  158. alert(typeof v3);
  159. var v4Infinity = Infinity;
  160. alert(typeof v4Infinity);
  161. }
  162. function nan()
  163. {
  164. var i = 10;
  165. var e = "abc";
  166. alert(i / e);
  167. alert(e + i);
  168. }
  169. function Infi()
  170. {
  171. var i = 0;
  172. var p = 10;
  173. alert(p / i);
  174. }
  175. function isN(a,b)
  176. {
  177. // 当我们isNaN()返回true,就代表不是一个数字
  178. if(isNaN(a) || isNaN(b))
  179. {
  180. alert("参与运算的必须是数字");
  181. }
  182. alert(a + b);
  183. }
  184. //pareseFloat可以将字符串自动转换成
  185. function fl()
  186. {
  187. // 将字符串转换为数字
  188. alert(parseInt("3.19999"))
  189. alert(parseInt(3.19999))
  190. alert(parseFloat(3.14 + 1))
  191. alert(parseFloat("3.14") + 1)
  192. }
  193. function flag()
  194. {
  195. var username = "jack";
  196. if(username)
  197. {
  198. // 原因是浏览器自动将他转换为boolean类型,自动调用了boolean函数
  199. // 不写也会调用
  200. alert("欢迎" + username)
  201. }
  202. else
  203. {
  204. alert("用户名不为空")
  205. }
  206. }
  207. function bTest()
  208. {
  209. alert(Boolean(1));//true
  210. alert(Boolean(0));//false
  211. alert(Boolean(""));//false
  212. alert(Boolean("abc"));//true
  213. alert(Boolean(null));//false
  214. alert(Boolean(NaN));//false
  215. alert(Boolean(undefined));//false
  216. alert(Boolean(Infinity));//true
  217. while(10 / 3)
  218. {
  219. //无限循环,因为始终有值且为true
  220. alert("hehe")
  221. }
  222. }
  223. //JS中String是一个内置的类,继承于Object类
  224. function sy()
  225. {
  226. //直接写出来的这种string字符串对象属于原始类型String
  227. var S = "abc";
  228. alert(typeof S);//得到String
  229. //new出来的String属于Object类型
  230. var s = new String("abc");
  231. alert(typeof s);//得到Object
  232. //无论小大String类型,他们的属性和函数都是通用的
  233. alert(S.length);
  234. alert(s.length);
  235. }
  236. function SP()
  237. {
  238. //String常用函数
  239. //indexOf指定字符串在当前字符串第一次出现的索引
  240. //lastIndexOf指定字符串在当前字符串最后一次出现的索引
  241. //replace替换
  242. //substr截取子字符串指定开始index,指定字符串长度
  243. //substring从index到end处对字符串进行截取
  244. //toLowerCase小写
  245. //toUpperCase大写
  246. //split拆分字符串
  247. var os = "https://www.baidu.com"
  248. //从第四开始长度为5
  249. alert(os.substr(4,5));
  250. //从0开始到第四个字符
  251. alert(os.substring(0,4));
  252. alert(os.indexOf("https"));
  253. alert(os.indexOf("baidu.com") >= 0 ? "包含" : "不包含")
  254. var iu = new String("name=value%name=value%name=value");
  255. while(iu.indexOf("%") >= 0)
  256. {
  257. iu.replace("%","&");
  258. alert(iu);
  259. }
  260. }
  261. //Object是所有类型的超类,自定义的任何类型,默认继承Object
  262. //prototype属性(常用的),作用是给类动态的拓展属性和函数
  263. //constructor属性
  264. //Object类包含哪些函数
  265. //toString()valueOf()tolocaleString()
  266. //JS中自定义的类默认继承Object,会继承Object类中所有的属性和函数
  267. //换句话说,自定义的类也有prototype属性
  268. // 定义方式function类名(形参)
  269. //第二种方法类名 = function(形参){}
  270. //创建对象的语法new 类名(实参)
  271. function asdas()
  272. {
  273. function sayHello(){}
  274. sayHello();//视为调用函数
  275. var obj = new sayHello();//这种方式视为创建对象
  276. //obj是一个引用,保存内存地址指向堆中的对象
  277. function Student(){alert("学生")}
  278. //当作函数
  279. Student();
  280. //当作类来创建对象
  281. var student = new Student();
  282. alert(student)
  283. }
  284. //在JS中,类的定义和函数的定义是放在一起的
  285. function User(a,b,c)//三个形参
  286. {
  287. //声明属性,代表当前对象
  288. // 三个属性
  289. this.sno = a;
  290. this.sname = b;
  291. this.sage = c;
  292. }
  293. function U()
  294. {
  295. //创建对象
  296. var u1 = new User(111,"zhangsan",30);
  297. //访问对象的属性
  298. alert("id" + u1.sno);
  299. alert("name" + u1.sname);
  300. alert("age" + u1.sage);
  301. var u2 = new User(222,"2222",20);
  302. //访问对象的属性
  303. alert("id" + u2.sno);
  304. alert("name" + u2.sname);
  305. alert("age" + u2.sage);
  306. alert(u2["sno"]);
  307. alert(u2["sname"]);
  308. alert(u2["sage"]);
  309. }
  310. Emp = function(ename,sal)
  311. {
  312. this.ename = ename;
  313. this.sal = sal;
  314. }
  315. function Tes()
  316. {
  317. var e1 = new Emp("Smith",8000);
  318. alert(e1.sal);
  319. alert(e1.ename);
  320. alert(e1["ename"]);
  321. alert(e1["sal"]);
  322. }
  323. Product = function(pno,pname,price)
  324. {
  325. //属性
  326. this.pno = pno;
  327. this.pname = pname;
  328. this.price = price;
  329. //函数
  330. this.getPrice = function(){
  331. return this.price;
  332. }
  333. var pro = new Product(111,"西瓜",4.0);
  334. var pri = pro.getPrice();
  335. alert(pri);
  336. }
  337. Product.prototype.getPname = function()
  338. {
  339. return this.pname;
  340. var name = pro.getPname();
  341. alert(name);
  342. }
  343. //这个可以给JS中任何Object的子类扩展
  344. String.prototype.make = function()
  345. {
  346. alert("这是给String扩展的")
  347. "abc".make();
  348. }
  349. function doSome()
  350. {
  351. alert("按下了");
  352. }
  353. window.onload = function()
  354. {
  355. document.getElementById("osx").onclick = function()
  356. {
  357. var choose = document.getElementById("choose");
  358. //一个节点只要有的属性都可以.出来切换
  359. choose.type = "checkbox";
  360. // choose.type = "password";
  361. // choose.value = "按下了";
  362. }
  363. //通过ID来获取这个按钮对象
  364. //整个浏览器我们称之为window,就是window.alert的window
  365. //页面信息我们称之为document
  366. var btnObj = document.getElementById("myBtn");
  367. //给按钮对象的onclick赋值
  368. btnObj.onclick = doSome;
  369. var scxz = document.getElementById("myBtn1")
  370. scxz.onclick = function()
  371. {
  372. alert("按按钮");
  373. }
  374. // null属于Object类型
  375. // nan属于数字Number
  376. // undefined属于undefined
  377. // 他们三个类型不同
  378. // null == undefined
  379. // null和undefined可以等同
  380. // ==等同于运算符,===全等运算符,即判断值是否相等,有判断类型是否相等
  381. // 当我们用===,null和undefined和nan全都不等
  382. // JS的变量不需要指定数据类型,但是在赋值的时候,每一个数据还是有类型的
  383. // JS数据类型有原始类型,引用类型
  384. // 原始类型有undefined,Number,String,null,boolean
  385. // 引用类型Object,以及Object的子类
  386. //ES规范,在ES6之后添加了symbol类型
  387. // JS有一个运算符叫typeof,可以在程序运行阶段获取变量数据类型
  388. //全局变量和局部变量
  389. //全局变量,浏览器打开声明,关闭时销毁,会一直在内存空间,耗费内存
  390. // 非必要不要使用全局变量
  391. //局部变量声明在函数内,函数开始执行时局部变量的内存空间开辟
  392. // 函数结束后,内存空间释放,什么周期短
  393. // 尽量使用局部变量
  394. }

// 标识符必须由数字字母下划线美元符号组成,别的符号不允许
// 不能以数字开头
// 严格区分大小写
// 标识符不能用关键字做标识符
// 理论上没有长度限制
// 类名和接口首字母大写,后面每个单词首字母大写
// 方法名和变量名,首字母小写,后面每个单词首字母大写
// 所有的常量名,全部大写,单词和单词之间用下划线隔开
// 驼峰命名,见名知意
// java是一种强类型语言,java存在编译阶段
// 在java中,在编译阶段就确定了变量类型,一旦确定类型就无法转换,语法类型转换,不是真转换
// int i = 10;double d = i;不是把i变量给了d,把i变量内容改变了
// 而是把i变量保存的值10给了变量d,i变量还是int类型,值为10
// byte short int long float double boolean char
// 1248 4812
// JS是一个弱类型语言,没有编译阶段,一个变量可以随意赋值,什么类型都行
// undefined在JS里面是一个具体的值,当我们没有给变量赋值的时候,他的值就是undefined
// java中我们写方法
// 修饰符列表 返回值类型 方法名(形式参数列表){方法体}
// public static boolean login(String username,String password){return true;}
//boolean flag = user.login(username,password);
//这里我们实际调用方法的时候传进去的就是实参,实际参数必须与形参一一对应
// function 函数名(形参类型){函数体}

//blur失去焦点
//focus获得焦点
//click鼠标单击
//dblclick鼠标双击
//keydown按下键盘
//keyup键盘松开
//mousedown鼠标按下
//mouseover鼠标松开
//mousemove鼠标移动
//mouseoutout鼠标移开
//mouseup鼠标弹起
//reset表单重置
//submit表单提交
//change下拉选项改变
//select文本选中
//load页面加载完毕(全部页面元素加载到内存)

// 任何一个事件都会对应一个事件句柄,事件句柄就是在事件前添加on
//sayHello函数被称为回调函数(自己写出函数,不是自己调用如用户调用)

function sum(a,b)
{
// a和b都是变量名,他们都是形参,变量名随意
// 这里我们可以使用typeof来判断或者说限定这里就是数字number
// typeof的运算结果是六个字符串之一,字符串是全部小写的
// 在JS中使用==来做字符串判断,没有equals方法(这是java的Object类的一个方法)
var i = 100;
if(typeof a == “number” && typeof b == “number”)
{
alert(a + b);
}
else
{
alert(“必须都是数字”)
}
}

var i = 100;
function access()
{
//这里访问的是全局变量
alert(i);
}

function myFun()
{
//如果一个变量在声明的时候没有加上var
//那么无论在哪里声明的,他都是全局变量
//而且还要被调用一次
username = “jack”;
}

//需要调用一次
myFun();

function sayName()
{
// 就近原则访问Rose局部变量
// var username = “Rose”;
alert(username);
}

function count(a,b)
{
return a + b;
}

// JS中的函数不需要重载(重载是方法名相同,形参不同(可以是数量,类型,顺序不同))
// 调用函数count

function sayHello(username)
{
alert(“hello” + username);
var w = count(10,30);
alert(w);
// var ret = count(“jack”);
var ret = count();
// 一个值赋值了,另一个值没赋值默认undefined
// 形成了字符串拼接
// NaN是一个具体存在的值,表示该值不是数字
alert(ret)
var sum = count(1,2,3);
//超过了数量,只用了前面的
// js的函数调用时,参数类型没有限制,参数个数没有限制
alert(sum)
}

function TestI()
{
var i = 100;
i = false;
i = “abc”;
i = new Object();
i = 3.14;
alert(i)
}

function Test()
{
var a,b,c = 200;
alert(undefined);
alert(“a =” + a);
alert(“b =” + b);
alert(“c =” + c);
// 一个值我们没声明直接用,就会报错
// alert(age);
}

function test1(username)
{
alert(username)
}

// js中同名函数会彼此覆盖
// 后声明的会覆盖前面的函数,谁后谁做主
//直接从内存中抹去了之前的函数了

function test1()
{
var u = sum(false,false);
alert(u);
}

function T()
{
var o;
alert(typeof o);
var p = 10;
alert(typeof p);
var k = “abc”;
alert(typeof k);
var u = null;
alert(typeof u);
var f = true;
alert(typeof f);
var obj = new Object();
alert(typeof obj);
function sHello(){}
alert(typeof sHello())
}

function cALL()
{
var v = 1;
alert(typeof v);
var v1 = 3.14;
alert(typeof v1);
var v2 = -100;
alert(typeof v2);
var v3 = NaN;
alert(typeof v3);
var v4Infinity = Infinity;
alert(typeof v4Infinity);
}

function nan()
{
var i = 10;
var e = “abc”;
alert(i / e);
alert(e + i);
}

function Infi()
{
var i = 0;
var p = 10;
alert(p / i);
}

function isN(a,b)
{
// 当我们isNaN()返回true,就代表不是一个数字
if(isNaN(a) || isNaN(b))
{
alert(“参与运算的必须是数字”);
}
alert(a + b);
}

//pareseFloat可以将字符串自动转换成
function fl()
{
// 将字符串转换为数字
alert(parseInt(“3.19999”))
alert(parseInt(3.19999))
alert(parseFloat(3.14 + 1))
alert(parseFloat(“3.14”) + 1)
}

function flag()
{
var username = “jack”;
if(username)
{
// 原因是浏览器自动将他转换为boolean类型,自动调用了boolean函数
// 不写也会调用
alert(“欢迎” + username)
}
else
{
alert(“用户名不为空”)
}
}

function bTest()
{
alert(Boolean(1));//true
alert(Boolean(0));//false
alert(Boolean(“”));//false
alert(Boolean(“abc”));//true
alert(Boolean(null));//false
alert(Boolean(NaN));//false
alert(Boolean(undefined));//false
alert(Boolean(Infinity));//true
while(10 / 3)
{
//无限循环,因为始终有值且为true
alert(“hehe”)
}
}

//JS中String是一个内置的类,继承于Object类
function sy()
{
//直接写出来的这种string字符串对象属于原始类型String
var S = “abc”;
alert(typeof S);//得到String
//new出来的String属于Object类型
var s = new String(“abc”);
alert(typeof s);//得到Object
//无论小大String类型,他们的属性和函数都是通用的
alert(S.length);
alert(s.length);
}

function SP()
{
//String常用函数
//indexOf指定字符串在当前字符串第一次出现的索引
//lastIndexOf指定字符串在当前字符串最后一次出现的索引
//replace替换
//substr截取子字符串指定开始index,指定字符串长度
//substring从index到end处对字符串进行截取
//toLowerCase小写
//toUpperCase大写
//split拆分字符串
var os = “https://www.baidu.com“
//从第四开始长度为5
alert(os.substr(4,5));
//从0开始到第四个字符
alert(os.substring(0,4));
alert(os.indexOf(“https”));
alert(os.indexOf(“baidu.com”) >= 0 ? “包含” : “不包含”)
var iu = new String(“name=value%name=value%name=value”);
while(iu.indexOf(“%”) >= 0)
{
iu.replace(“%”,”&”);
alert(iu);
}
}

//Object是所有类型的超类,自定义的任何类型,默认继承Object
//prototype属性(常用的),作用是给类动态的拓展属性和函数
//constructor属性
//Object类包含哪些函数
//toString()valueOf()tolocaleString()
//JS中自定义的类默认继承Object,会继承Object类中所有的属性和函数
//换句话说,自定义的类也有prototype属性
// 定义方式function类名(形参)
//第二种方法类名 = function(形参){}
//创建对象的语法new 类名(实参)
function asdas()
{
function sayHello(){}

sayHello();//视为调用函数

var obj = new sayHello();//这种方式视为创建对象
//obj是一个引用,保存内存地址指向堆中的对象

function Student(){alert(“学生”)}
//当作函数
Student();
//当作类来创建对象
var student = new Student();
alert(student)
}

//在JS中,类的定义和函数的定义是放在一起的
function User(a,b,c)//三个形参
{
//声明属性,代表当前对象
// 三个属性
this.sno = a;
this.sname = b;
this.sage = c;
}

function U()
{
//创建对象
var u1 = new User(111,”zhangsan”,30);
//访问对象的属性
alert(“id” + u1.sno);
alert(“name” + u1.sname);
alert(“age” + u1.sage);

var u2 = new User(222,”2222”,20);
//访问对象的属性
alert(“id” + u2.sno);
alert(“name” + u2.sname);
alert(“age” + u2.sage);

alert(u2[“sno”]);
alert(u2[“sname”]);
alert(u2[“sage”]);
}

Emp = function(ename,sal)
{
this.ename = ename;
this.sal = sal;
}

function Tes()
{
var e1 = new Emp(“Smith”,8000);
alert(e1.sal);
alert(e1.ename);
alert(e1[“ename”]);
alert(e1[“sal”]);
}

Product = function(pno,pname,price)
{
//属性
this.pno = pno;
this.pname = pname;
this.price = price;
//函数
this.getPrice = function(){
return this.price;
}
var pro = new Product(111,”西瓜”,4.0);
var pri = pro.getPrice();
alert(pri);
}

Product.prototype.getPname = function()
{
return this.pname;
var name = pro.getPname();
alert(name);
}

//这个可以给JS中任何Object的子类扩展
String.prototype.make = function()
{
alert(“这是给String扩展的”)
“abc”.make();
}

function doSome()
{
alert(“按下了”);
}

window.onload = function()
{
document.getElementById(“osx”).onclick = function()
{
var choose = document.getElementById(“choose”);
//一个节点只要有的属性都可以.出来切换
choose.type = “checkbox”;
// choose.type = “password”;
// choose.value = “按下了”;
}

//通过ID来获取这个按钮对象
//整个浏览器我们称之为window,就是window.alert的window
//页面信息我们称之为document
var btnObj = document.getElementById(“myBtn”);
//给按钮对象的onclick赋值
btnObj.onclick = doSome;

var scxz = document.getElementById(“myBtn1”)
scxz.onclick = function()
{
alert(“按按钮”);
}

// null属于Object类型
// nan属于数字Number

// undefined属于undefined
// 他们三个类型不同
// null == undefined
// null和undefined可以等同
// ==等同于运算符,===全等运算符,即判断值是否相等,有判断类型是否相等
// 当我们用===,null和undefined和nan全都不等

// JS的变量不需要指定数据类型,但是在赋值的时候,每一个数据还是有类型的
// JS数据类型有原始类型,引用类型
// 原始类型有undefined,Number,String,null,boolean
// 引用类型Object,以及Object的子类
//ES规范,在ES6之后添加了symbol类型
// JS有一个运算符叫typeof,可以在程序运行阶段获取变量数据类型

//全局变量和局部变量
//全局变量,浏览器打开声明,关闭时销毁,会一直在内存空间,耗费内存
// 非必要不要使用全局变量
//局部变量声明在函数内,函数开始执行时局部变量的内存空间开辟
// 函数结束后,内存空间释放,什么周期短
// 尽量使用局部变量
}

发表评论

表情:
评论列表 (有 0 条评论,85人围观)

还没有评论,来说两句吧...

相关阅读

    相关 javascript函数

    javascript常用函数 javascript函数式编程,调用后,不修改原数据,返回运算后的新数组。 reduce 当提供了初始值时,初始值会放入第一次调用