1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <title>011-020章总结</title>
  6. </head>
  7. <body>
  8. <pre>
  9. 011. 强制类型转换-String
  10. 强制类型转换
  11. - 指将一个数据类型强制转换为其他的数据类型
  12. - 类型转换主要指,将其他的数据类型,转换为
  13. String Number Boolean
  14. 将其他的数据类型转换为String
  15. 方式一:
  16. - 调用被转换数据类型的toString()方法
  17. - 该方法不会影响到原变量,它会将转换的结果返回
  18. - 但是注意:null和undefined这两个值没有toString()方法,报错。
  19. 如果调用他们的方法,会报错
  20. toString()函数的返回值为String类型。返回当前对象的字符串形式。
  21. JavaScript的许多内置对象都重写了该函数,以实现更适合自身的功能需要。
  22. 对于Number调用toString()时可以在方法中传递一个整数作为参数
  23. 此时它将会把数字转换为指定的进制,如果不指定则默认转换为10进制
  24. 方式二:
  25. - 调用String()函数,并将被转换的数据作为参数传递给函数
  26. - 使用String()函数做强制类型转换时,
  27. 对于Number和Boolean实际上就是调用的toString()方法
  28. 但是对于null和undefined,就不会调用toString()方法
  29. 它会将 null 直接转换为 "null"
  30. 将 undefined 直接转换为 "undefined".
  31. </pre>
  32. <script type="text/javascript">
  33. console.log("第011");
  34. // 调用对象的toString()方法
  35. // 调用xxx的yyy()方法,就是xxx.yyy()
  36. var ts_123 = 123;
  37. var ts_true = true;
  38. var ts_null = null;
  39. var ts_undefined = undefined;
  40. var s_null = null;
  41. var s_undefined = undefined;
  42. ts_123 = ts_123.toString();
  43. ts_true = ts_true.toString();
  44. //ts_null = ts_null.toString();
  45. //ts_undefined = ts_undefined.toString();
  46. s_null = String(null);
  47. s_undefined = String(undefined);
  48. console.log("toString(123) ->" + ts_123 ); //123
  49. console.log("toString(true) ->" + ts_true ); //true
  50. //console.log("toString(null) ->" + ts_null ); // 没有报错
  51. //console.log("toString(undefined) ->" + ts_undefined ); // 没有报错
  52. console.log("String(null) ->" + s_null ); // null
  53. console.log("String(undefined) ->" + s_undefined ); //undefined
  54. //对于Number调用toString()时可以在方法中传递一个整数作为参数
  55. //此时它将会把数字转换为指定的进制,如果不指定则默认转换为10进制
  56. var at =55
  57. at = at.toString(16);
  58. console.log(at); //37
  59. console.log(typeof at); //string
  60. </script>
  61. <pre>
  62. 012. 强制类型转换-Number
  63. 将其他的数据类型转换为Number
  64. 转换方式一:
  65. 使用Number()函数
  66. - 字符串 --> 数字
  67. 1.如果是纯数字的字符串,则直接将其转换为数字
  68. 2.如果字符串中有非数字的内容,则转换为NaN
  69. 3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
  70. - 布尔 --> 数字
  71. true 转成 1
  72. false 转成 0
  73. - null --> 数字 0
  74. - undefined --> 数字 NaN
  75. 转换方式二:
  76. - 这种方式专门用来对付字符串
  77. - parseInt() 把一个字符串转换为一个整数
  78. - parseFloat() 把一个字符串转换为一个浮点数
  79. </pre>
  80. <script type="text/javascript">
  81. console.log("第012");
  82. var n_123 = Number("123");
  83. var n_123safsd = Number("123safsd");
  84. var n_ = Number("");
  85. var n_true = Number(true);
  86. var n_false = Number(false);
  87. var n_null = Number(null);
  88. var n_undefined = Number(undefined);
  89. var p_123safsd = parseInt("123safsd");
  90. var p_float = parseFloat("4323.54353fsdfasd");
  91. console.log("Number('123') ->" + n_123 ); // 123
  92. console.log("Number('123safsd') ->" + n_123safsd ); //NaN
  93. console.log("Number('') ->" + n_ ); //0
  94. console.log("Number(true) ->" + n_true ); //1
  95. console.log("Number(false) ->" + n_false ); //0
  96. console.log("Number(null) ->" + n_null ); //0
  97. console.log("Number(undefined) ->" + n_undefined );//NaN
  98. console.log("parseInt('123safsd') ->" + p_123safsd ); //123
  99. console.log("parseFloat('4323.54353fsdfasd') ->" + p_float ); //4323.54353
  100. </script>
  101. <pre>
  102. 013. 其他进制的数字
  103. 如果需要表示16进制的数字,则需要以0x开头
  104. 如果需要表示8进制的数字,则需要以0开头
  105. 如果要要表示2进制的数字,则需要以0b开头,但是不是所有的浏览器都支持
  106. </pre>
  107. <script type="text/javascript">
  108. console.log("第013");
  109. var a ;
  110. //十六进制
  111. a = 0x10;
  112. a = 0xff;
  113. a = 0xCafe;
  114. //八进制数字
  115. a = 070;
  116. //二进制数字
  117. //a =0b10;
  118. //向"070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
  119. a = "070";
  120. //可以在parseInt()中传递一个第二个参数,来指定数字的进制
  121. a = parseInt(a,10);
  122. console.log(typeof a); // number
  123. console.log(a); //70
  124. </script>
  125. <pre>
  126. 014. 转换为Boolean
  127. 将其他的数据类型转换为Boolean
  128. - 使用Boolean()函数
  129. - 数字 ---> 布尔
  130. - 除了0和NaN,其余的都是true
  131. - 字符串 ---> 布尔
  132. - 除了空串,其余的都是true
  133. - null和undefined都会转换为false
  134. - 对象也会转换为true
  135. </pre>
  136. <script type="text/javascript">
  137. console.log("第014");
  138. var b_123 =Boolean(123); //true
  139. var b_0 =Boolean(0); //false
  140. var b_nan =Boolean(NaN); //false
  141. var b_string =Boolean("fdada"); //true
  142. var b_kong =Boolean(""); //false
  143. var b_null =Boolean(null); //false
  144. var b_undefined =Boolean(undefined); //false
  145. var b_object =Boolean(Object); //true
  146. console.log("Boolean(123) ->" + b_123); //true
  147. console.log("Boolean(0) ->" + b_0); //false
  148. console.log("Boolean(NaN) ->" + b_nan); //false
  149. console.log("Boolean('fdada') ->" + b_string); //true
  150. console.log("Boolean('') ->" + b_kong); //false
  151. console.log("Boolean(null) ->" + b_null); //false
  152. console.log("Boolean(undefined) ->" + b_undefined); //false
  153. console.log("Boolean(Object) ->" + b_object); //true
  154. </script>
  155. <pre>
  156. 015. 算数运算符
  157. 运算符也叫操作符
  158. 通过运算符可以对一个或多个值进行运算,并获取运算结果
  159. 比如:typeof就是运算符,可以来获得一个值的类型
  160. 它会将该值的类型以字符串的形式返回
  161. number string boolean undefined object
  162. 运算符一般不会改变原变量的值。
  163. 算数运算符
  164. 当对非Number类型的值进行运算时,会将这些值转换为Number然后在运算
  165. 任何值和NaN做运算都得NaN
  166. +
  167. 可以对两个值进行加法运算,并将结果返回
  168. 如果对两个字符串进行加法运算,则会做拼串
  169. 会将两个字符串拼接为一个字符串,并返回
  170. 任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作
  171. - 可以对两个值进行减法运算,并将结果返回
  172. * 可以对两个值进行乘法运算
  173. / 可以对两个值进行除法运算
  174. % 取模运算(取余数)
  175. </pre>
  176. <script type="text/javascript">
  177. console.log("第015");
  178. var a = 123;
  179. var result = typeof a;
  180. console.log(typeof result); //string
  181. result = a + 1; // 124
  182. result = 456 + 789;
  183. result = true + 1; //2
  184. result = true + false; //1
  185. result = 2 + null; //2
  186. result = 2 + NaN; // nan
  187. result = "你好" + "大帅哥";
  188. console.log(result); //你好大帅哥
  189. var str = "锄禾日当午," +
  190. "汗滴禾下土," +
  191. "谁知盘中餐," +
  192. "粒粒皆辛苦";
  193. result = 123 + "1";
  194. console.log(result); //字符串1231
  195. result = true + "hello";
  196. console.log(result); //"truehello"
  197. //任何值和字符串相加都会转换为字符串,并做拼串操作
  198. /*
  199. * 我们可以利用这一特点,来将一个任意的数据类型转换为String
  200. * 我们只需要为任意的数据类型 + 一个 "" 即可将其转换为String
  201. * 这是一种隐式的类型转换,由浏览器自动完成,实际上它也是调用String()函数
  202. */
  203. var c = 123;
  204. c = c + "";
  205. //c = null;
  206. //c = c + "";
  207. console.log(typeof c); //string
  208. console.log("c = "+c); //123
  209. result = 1 + 2 + "3";
  210. console.log(result); //33
  211. result = "1" + 2 + 3;
  212. console.log(result); //123
  213. result = 100 - 5;
  214. result = 100 - true;
  215. result = 100 - "1";
  216. result = 2 * 2;
  217. result = 2 * "8";
  218. result = 2 * undefined;
  219. result = 2 * null;
  220. result = 4 / 2;
  221. result = 3 / 2;
  222. console.log("result = "+result); //1.5
  223. /*
  224. * 任何值做- * /运算时都会自动转换为Number
  225. * 我们可以利用这一特点做隐式的类型转换
  226. * 可以通过为一个值 -0 *1 /1来将其转换为Number
  227. * 原理和Number()函数一样,使用起来更加简单
  228. */
  229. var d = "123";
  230. //console.log("result = "+result);
  231. d = d - 0;
  232. console.log(typeof d); //number
  233. console.log(d); //123
  234. result = 9 % 3;
  235. result = 9 % 4;
  236. result = 9 % 5;
  237. console.log("result = "+result); //4
  238. </script>
  239. <pre>
  240. 016. 一元运算符
  241. 一元运算符,只需要一个操作数
  242. + 正号
  243. - 正号不会对数字产生任何影响
  244. - 负号
  245. - 负号可以对数字进行负号的取反
  246. - 对于非Number类型的值,
  247. 它会将先转换为Number,然后在运算
  248. 可以对一个其他的数据类型使用+,来将其转换为number
  249. 它的原理和Number()函数一样
  250. </pre>
  251. <script type="text/javascript">
  252. console.log("第016");
  253. var a = 123;
  254. a = -a;
  255. a = true;
  256. a = "18";
  257. a = +a;
  258. /*console.log("a = "+a);
  259. console.log(typeof a);*/
  260. var result = 1 + +"2" + 3;
  261. console.log("result = "+result); //6
  262. </script>
  263. <pre>
  264. 017. 自增和自减
  265. 自增 ++
  266. - 通过自增可以使变量在自身的基础上增加1
  267. - 对于一个变量自增以后,原变量的值会立即自增1
  268. - 自增分成两种:后++(a++) 和 前++(++a)
  269. 无论是a++ 还是 ++a,都会立即使原变量的值自增1
  270. 不同的是a++ 和 ++a的值不同
  271. a++的值等于原变量的值(自增前的值)
  272. ++a的值等于新值 (自增后的值)
  273. 自减 --
  274. - 通过自减可以使变量在自身的基础上减1
  275. - 自减分成两种:后--(a--) 和 前--(--a)
  276. 无论是a-- 还是 --a 都会立即使原变量的值自减1
  277. 不同的是a-- 和 --a的值不同
  278. a-- 是变量的原值 (自减前的值)
  279. --a 是变量的新值 (自减以后的值)
  280. </pre>
  281. <script type="text/javascript">
  282. console.log("第017");
  283. var ziZeng = 1;
  284. //使ziZeng自增1
  285. //ziZeng++;
  286. //++ziZeng;
  287. console.log(ziZeng++); //1
  288. console.log(ziZeng); //2
  289. console.log(++ziZeng); //3
  290. console.log(ziZeng); // 3
  291. var result = ziZeng++ + ++ziZeng + ziZeng; // 3+ 5 + 5 =13
  292. console.log(result);
  293. var c = 10;
  294. c++;
  295. c++;
  296. //第一次c++,是在10的基础上自增
  297. //第二次c++,是在11的基础上自增
  298. console.log("c = " + c); //12
  299. var d = 20;
  300. d = d++; // 20
  301. var e = d++; //20
  302. d = e; //20
  303. console.log("d = "+d); //20
  304. //num--;
  305. //--num;
  306. var num = 10;
  307. console.log(num--); //10
  308. console.log(--num); //8
  309. console.log("num = "+num); //8
  310. </script>
  311. <pre>
  312. 018. 自增练习
  313. </pre>
  314. <script type="text/javascript">
  315. console.log("第018");
  316. var n1=10;
  317. var n2=20;
  318. var n = n1++; //n1 = 11 n1++ = 10
  319. console.log('n='+n); // 10
  320. console.log('n1='+n1); //11
  321. n = ++n1 //n1 = 12 ++n1 =12
  322. console.log('n='+n); //12
  323. console.log('n1='+n1); //12
  324. n = n2--;// n2=19 n2--=20
  325. console.log('n='+n); //20
  326. console.log('n2='+n2); //19
  327. n = --n2; //n2=18 --n2 = 18
  328. console.log('n='+n); //18
  329. console.log('n2='+n2); //18
  330. </script>
  331. <pre>
  332. 019. 逻辑运算
  333. JS中为我们提供了三种逻辑运算符
  334. ! 非
  335. - !可以用来对一个值进行非运算
  336. - 所谓非运算就是值对一个布尔值进行取反操作,
  337. true变false,false变true
  338. - 如果对一个值进行两次取反,它不会变化
  339. - 如果对非布尔值进行元素,则会将其转换为布尔值,然后再取反
  340. 所以我们可以利用该特点,来将一个其他的数据类型转换为布尔值
  341. 可以为一个任意数据类型取两次反,来将其转换为布尔值,
  342. 原理和Boolean()函数一样
  343. && 与
  344. - &&可以对符号两侧的值进行与运算并返回结果
  345. - 运算规则
  346. - 两个值中只要有一个值为false就返回false,
  347. 只有两个值都为true时,才会返回true
  348. - JS中的“与”属于短路的与,
  349. 如果第一个值为false,则不会看第二个值
  350. || 或
  351. - ||可以对符号两侧的值进行或运算并返回结果
  352. - 运算规则:
  353. - 两个值中只要有一个true,就返回true
  354. 如果两个值都为false,才返回false
  355. - JS中的“或”属于短路的或
  356. 如果第一个值为true,则不会检查第二个值
  357. </pre>
  358. <script type="text/javascript">
  359. console.log("第019");
  360. //如果两个值都是true则返回true
  361. var result = true && true;
  362. //只要有一个false,就返回false
  363. result = true && false;
  364. result = false && true;
  365. result = false && false;
  366. console.log("result = "+result); //false
  367. //第一个值为true,会检查第二个值
  368. //true && alert("看我出不出来!!"); //经常用到
  369. //第一个值为false,不会检查第二个值
  370. //false && alert("看我出不出来!!");
  371. //两个都是false,则返回false
  372. result = false || false;
  373. //只有有一个true,就返回true
  374. result = true || false;
  375. result = false || true ;
  376. result = true || true ;
  377. console.log("result = "+result); //true
  378. //第一个值为false,则会检查第二个值
  379. //false || alert("123");
  380. //第一个值为true,则不再检查第二个值
  381. //true || alert("123");
  382. var a = false;
  383. //对a进行非运算
  384. a = !a;
  385. console.log("a = "+a); //true
  386. var b = 10;
  387. b = !!b; // b转换为boolean为true,!b是false ,!!b为true
  388. console.log("b = "+b); //true
  389. console.log(typeof b); //boolean
  390. </script>
  391. <pre>
  392. 020. 非布尔值的与或运算
  393. - 对于非布尔值进行与或运算时,
  394. 会先将其转换为布尔值,然后再运算,并且返回原值
  395. - 与运算:
  396. - 如果第一个值为true,则必然返回第二个值
  397. - 如果第一个值为false,则直接返回第一个值
  398. - 或运算
  399. - 如果第一个值为true,则直接返回第一个值
  400. - 如果第一个值为false,则返回第二个值
  401. </pre>
  402. <script type="text/javascript">
  403. console.log("第020");
  404. //true && true
  405. //与运算:如果两个值都为true,则返回后边的
  406. var result = 5 && 6;
  407. console.log(result); //6
  408. //与运算:如果两个值中有false,则返回靠前的false
  409. //false && true
  410. result = 0 && 2;
  411. console.log(result); //0
  412. result = 2 && 0;
  413. console.log(result); //0
  414. //false && false
  415. result = NaN && 0;
  416. console.log(result); //NaN
  417. result = 0 && NaN;
  418. console.log(result); //0
  419. //true || true
  420. //如果第一个值为true,则直接返回第一个值
  421. result = 2 || 1;
  422. result = 2 || NaN;
  423. console.log(result); //2
  424. result = 2 || 0;
  425. console.log(result); //2
  426. //如果第一个值为false,则直接返回第二个值
  427. result = NaN || 1;
  428. result = NaN || 0;
  429. console.log(result); //0
  430. result = "" || "hello"; //false
  431. console.log("result = "+result); // hello
  432. result = -1 || "你好";
  433. console.log("result = "+result); // -1
  434. </script>
  435. </body>
  436. </html>

JavaScript基础视频教程总结(011-020章)相关推荐

  1. JavaScript基础视频教程总结(081-090章)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. JavaScript基础视频教程总结(091-100章)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. JavaScript基础视频教程总结(121-130章)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  4. Web前端开发精品课HTML CSS JavaScript基础教程第十四章课后编程题答案

    编程题: 下面有一段代码,请在这段代码的基础上使用正确的选择器以及这两章学到的字体样式.文本样式来实现图14-13所示的效果. <!DOCTYPE html> <html> & ...

  5. 视频教程-2020全新Javascript基础面试视频前端js教程-JavaScript

    2020全新Javascript基础面试视频前端js教程 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有node/java/python,专注于服 ...

  6. 第五模块·WEB开发基础-第2章JavaScript基础

    第1章 JavaScript基础 01-JavaScript历史介绍 02-JavaScript的组成 03-JavaScript的引入方式 04-变量的使用 05-基本数据类型(一) 06-基本数据 ...

  7. javascript百炼成仙 第一章 掌握JavaScript基础1.6 叶老

    这一日,叶小凡来到青山院附近的小山上修炼,忽然,被一块石头绊了一跤.正在他自认倒霉打算爬起来的时候,在石头缝里边发现了一枚古怪的戒指.戒指通体呈现一种枯黄色,似有一些年代悠久之感. "摔了一 ...

  8. javascript百炼成仙 第一章 掌握JavaScript基础01 初入宗门

    前些天发现了一个巨牛的人工智能学习博客,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转 乐阳村,处于脚本大陆东部的边缘地带,民风淳朴,村民日出而作,日落而息.这一日清晨,所有村民来到村庄的门口,正 ...

  9. javascript百炼成仙 第一章 掌握JavaScript基础1.8 对象的取值

    "小娃娃,我现在问你,如果我事先不知道对象的某个属性叫什么,那又该怎么访问对象中对应这个属性的值呢?"叶老笑呵呵地问到. "什么什么,事先都不知道对象的属性名称,那怎么可 ...

  10. javascript百炼成仙 第一章 掌握JavaScript基础1.4数据类型

    修行还在继续,随着对要诀的深入,叶小凡明白,在编程世界,刚才的直接量都属于一种数据.和人有男女一样,数据也是有类型的. 在JavaScript中,数据可分为两类,分别为原生数据类型(primitive ...

最新文章

  1. java异常处理之throw, throws,try和catch
  2. WinForm下PictureBox和Panel控件的On_Paint事件有何区别
  3. 一起谈.NET技术,ASP.NET 请求处理流程
  4. mysql的调试与分析_mysql日志管理分析调试实例_MySQL
  5. 2016年10月30日表单标签与样式表分类和选择器
  6. pytorch分布式训练(一):torch.nn.DataParallel
  7. WordPress主题LensNews模板源码,2.2版本多功能新闻积分商城主题
  8. 矩形法_教程 | 三个案例教会你大师都爱用的矩形造字法!
  9. java easing_p5.js入门教程之平滑过渡(Easing)
  10. 深度增强学习--DDPG
  11. 炒冷饭系列:设计模式 单例模式
  12. Android app 开发环境搭建
  13. 截止失真放大电路_一起学模电:6、放大电路静态与动态分析方法
  14. 第五章 执行计划详解
  15. UE4冒泡排序蓝图、随机整数数组生成蓝图
  16. HTML-文本格式化
  17. Unity 获取手机触摸方法
  18. 上饶县计算机等级考试,2020年3月江西省上饶市计算机等级考试报名时间
  19. UE风格化场景练习笔记Day1
  20. 明日直播:如何在RT-Thread上使用TFLite Micro实现AI相机?

热门文章

  1. Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)
  2. 【计算机网络自顶向下方法】(哈工大)学习笔记
  3. 计算机网络自顶向下方法 习题参考答案 第一章
  4. MD4 算法代码实现
  5. Mimics三维建模
  6. php转换时间戳的函数,php时间戳的转换函数
  7. scanner读取带空格字符串_Scanner类提供了输入字符出的方法,下面哪个方法可以实现字符串的输入且该串可以含有空格()。-智慧树JAVA程序设计(山东联盟-山东农业大学)章节答案...
  8. 五矿系30亿项目未经环评私行上马遭环保部叫停
  9. 免费的思维导图工具推荐(幕布-ProcessOn)2020年最新测评
  10. java实现解压war_java文件操作之war压缩解压