分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

js(1)

发布时间:2023-09-06 01:50责任编辑:苏小强关键词:js
《JavaScript权威指南》读后笔记

1.  ECMAScript 5的保留关键字:class,const,enum,export,extends,import,super ;

2.  ECMAScript 3 将Java所有的关键字都列为自己的保留字 ;

3.  分隔符 “ ;”  :

  • 缺少分隔符,一条语句的结束就成了下一条语句的开始,反之亦然;
  • 例外一,再涉及return,break,continue语句,如果这三关键后面紧跟着换行,JS则会在换行处自动填补分号;
  • 例外二,“  ++ ” ,“ -- ”自增自减符号,可为前缀,也可为后缀,否则行尾填补分号,将自增或自减符号作为下一行代码前缀操作符并与之一起解析。
    1 a2 ++3 b4 //解析为 a;++b;

4.  类型、值、变量

    (1)js数据类型分为:原始类型、对象类型

  •  原始类型:数字(整数:-253 ~253 ,浮点数:-5*10-324 ~ 5*10-324)、字符串、布尔值 、特殊原始值(nul:空、undefined:未定义);
  •  对象类型:对象、数组、函数;(对象object是属性property的集合,每个属性都由" 名/值对",值可为原始值也可为对象)

 (2)

var x=.3 - .2;
var y=.2 - .1;
x == y ; ??//false
x == .1 ; ?//false
y == .1 ; ?//true
//js中0.3-0.2=0.099 999 999 999 999 98;

   (3)日期和时间  var now = new Date();

1 var now=new Date();2 now.getFullYear();//年3 now.getMonth();//月份,从零开始数4 now.getDate();//几月的第几天,从一开始数5 now.getDay();//星期几,零代表星期日6 now.getHours();//当地时间7 now.getUTHours();//使用UTC表示小时的时间,基于时区

     (4)字符串

 1 ?var s="hello,world"; 2 s.charAt(0); ?????????????//h ?得到第几个字符,这里是第零个 3 s.charAt(s.length-1); ????//d ??4 s.substring(1,4); ???  ??//ell ?截取2~4个字符,因索引都是成0开始,所以是从第2个到第4个,但不包括第4个 5 s.slice(1,4); ????????????//ell ??6 s.slice(-3); ?????????????//rld ?最后三个字符 7 s.indexOf("l"); ??????????//2 ???首次出现的位置 8 s.lastIndexOf("l"); ??????//9 ???最后一次出现的位置 9 s.indexOf("l",3); ????????//3 ???在位置3及之后首次出现的位置10 s.split(","); ????????????//["hello","world"] 分割成子串11 s.replace("h","H"); ??????//Hello,world ?全文字符替换12 s.toUpperCase(); ?????????//HELLO,WORLD ?将字符转换为大写字母

 (5) RegExp()

 1 var text="testing:1,2,3"; 2 var pattern=/\d+/g; ????//匹配所有包含一个或多个数字的实例 3 pattern.test(text); ????//true ??test()方法用于检测一个字符串是否匹配某个模式. 4 text.search(pattern); ??/*8 ??search()方法用于检索字符串中指定的子字符串, 5 ???????????????????????????????或检索与正则表达式相匹配的子字符串。 6 ???????????????????????????????如果没有找到任何匹配的子串,则返回 -1 。 7 ????????????????????????????*/ ??8 text.match(pattern); ???/* ["1","2","3"] ??9 ????????????????????????????match() 方法可在字符串内检索指定的值,10 ????????????????????????????或找到一个或多个正则表达式的匹配。11 ????????????????????????????如果没有找到任何匹配的文本, match() 将返回 null。12 ????????????????????????????否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。*/13 text.replace(pattern,"#"); ?//testing:#,#,#14 text.split(/\D+/); ????//["","1","2","3"]

(6)  null 和 undefined

      null 常用来表示 “ 空值 ”, 执行 typeof预算,结果返回为object,也就是说,可以将null 认为是一个特殊的对象值,含义是“非对象”,实际上。

     undefined 也表示指的空缺,执行 typeof预算,结果返回为undefined,用未定义的值表示更深层次的 “  空值 ” 。它是变量的的一种取值,表明变量没有初始化。如果要查询对象属性或数组元素的值时返回undefined则说明这个属性或元素不存在;引用没有提供是实参的函数形参的值也是得到undefined。ECMAScript 3中undefined为可读/写,可任意赋值;ECMAScript 5中undefined为只读。

null 和 undefined都表示 “ 值得空缺 ” ,两者通常可互换,两者“==”值为true,两者“===”值为false;null 和 undefined 都不包含任何属性和方法。

也许可以认为undefined是表示系统级别的、出乎意料的或类似错误的的值得空缺,null 是表示程序级的、正常的或意料之中的值得空缺。若需传参最佳选择是null。

(7)全局对象

  • 全局属性:比如 undefined、Infinity、NaN;
  • 全局函数:比如 isNaN()、parseInt()、eval();
  • 构造函数:比如 Date()、RegExp()、String()、Object()、Array();
  • 全局对象:比如 Math 和 JSON;

全局对象的初始属性并不是保留字,但他们应该当做保留字来对待。

(8) 包装对象

    存取字符串、数字、布尔值的属性时创建的临时对象称作包装对象,它只是偶尔用来区分字符串值和字符串对象、数字和数值对象、布尔值和布尔对象。

(9)对象值的比较均是引用的比较:当且仅当它们引用同一个基对象时,它们才相等。

(10) 类型转换

  • toString(radix):radix为可选参数,如果不指定此参数,转换规则将基于十进制。radix的值为2~36.
    1 var n=17;2 str1=n.toString(2); ?//转换为“10001”3 str2="0"+n.toString(8); ??//转换为“021”4 str3="0x"+n.toString(16); ??//转换为“0x11”
  • toFixed() 根据小数点后的指定位数将数字转换为字符串;(有四舍五入或补充零);
  • toExponential()使用指数计数法将数字转换为指数形式的字符串,其中小数点前只有一位,小数点后的位数则由参数决定;(有四舍五入或补充零);
  • toPrecision()根据指定的的有效数字位数将数字转换为字符串。(有四舍五入或补充零);
  • Number() 将传入的字符串转换为一个证书或浮点数直接量。仅基于十进制数转换。;
  • parseInt() 只解析整数;(会跳过任意数量的前导空格);
  • parseFloat() 可解析整数和浮点数;(会跳过任意数量的前导空格);
    1 var n=123456.789;2 n.toFixed(0); ?//1234573 n.toFixed(2); ?//123456.794 n.toFixed(5); ?//123456.789005 n.toExponential(1); ?//1.2e+56 n.toExponential(3); ?//1.235e+57 n.toPrecision(4); ??//1.235e+58 n.toPrecision(7); ??//123456.89 n.toPrecision(10); ?//123456.7890

所有对象继承了两个转换方法

  • toString()
  • valueOf()  简单返回对象本身;如一个日期型,直接返回多少毫秒数。

(11) js中 函数作用域、声明提前

  •  函数作用域:指在函数内生命的所有变量在函数体内都是可见的。这意味着变量在声明之前甚至已经可用。这特性被非正式的称为声明提前。
  •  在一些类似C语言的编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明它们的代码段之外是不可见的,我们称为块级作用域。JS 没有块级作用域。

(12)使用var声明的变量时,创建的这个属性时不可配置的,故无法通过delete运算符删除。

1 var o1=1;2 o2=2;3 this.o3=3;4 delete o1; ?//false ?变量没有被删除5 delete o2; ?//true ??变量被删除6 delete o3; ?//true ??变量被删除

     

js(1)

原文地址:https://www.cnblogs.com/cjuan/p/8875798.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved