JS中有趣的知识
1.分号与换行
function fn1(){
return {
name: 'javascript'
};
}
function fn2(){
return
{
name: 'javascript'
};
}
var obj1 = fn1();
var obj2 = fn2();
console.log(obj1);
console.log(obj2);
这个例子看上去没有什么不同,但是实质上,确实是不同的。第一个输出结果为一个object ,而第二个输出结果为undefined。为什么?
因为Js中是不需要分号这个东西的,第二个会被解析成:
function fn2(){
return ;
{
name: 'javascript'
};
}
所以实质上返回的是一个undefined。
2.五大类型中,关于null
Js有五大数据类型boolean,string,number,undefined,object。而为什么
typeof null
会被解析为 object 呢?
原因是在计算机底层存储数据时是以二进制格式进行存储的,如果前三位为0的话会被解析为object数据类型。而null的所有位数都为0,当解析null时,前三位先被解析,计算机错认为null为object类型,这属于计算机语言层面的一个bug。
3.关于undefined
undefined是Undefined数据类型的实例,虽然它在实际应用过程中并不能用来存储数据,但我们可以对他进行一些操作。
当我们 对Undefined数据类型名进行类型检测时
var Undefined = 10;
var String=10;
console.log(typeof Undefined);
console.log(typeof String);
显示结果为 :number number。这是因为Undefined并不是关键字和保留字。如果对关键字进行声明,会报错。
当我们对他进行数据类型检测时
console.log(typeof undefined)
显示结果为undefined。
当我们对其他数据类型进行类型检测时
console.log(typeof Object);
console.log(typeof Number);
console.log(typeof String);
console.log(typeof Boolean);
显示结果却不是数据类型本身的类型,而是function;
但是由于undefined并不是关键字和保留字,所以我们可以重新声明它
var undefined = 10;
var string=10;
console.log(typeof undefined);
console.log(typeof string);
显示结果为:number number;可见undefined具有不变值的属性。同时开头字母小写的
var undefined = 10;
var string=10;
var boolean=10;
var object=10;
var number=10; console.log(typeof undefined);
console.log(typeof string);
console.log(typeof object); console.log(typeof boolean);
console.log(typeof number);
显示结果为:undefined number number number number 。可见同名且首字母小写的数据类型实例只有undefined一个,其他的都不是。
4.在JavaScript中不存在重载函数
有一定后端知识的同学都知道在C++和Java中都存在函数重载,
而JavaScript中却不存在函数重载,如果出现了,后者会把前者覆盖。而且函数声明会提升。
思维训练:有一个人花了800元买了一个游戏账号,又以900元卖出去,然后以1000元买回来,以1100卖出去,请问:这个人赚了多少钱?
5.Javascript中声明的name变量的数据类型会被自动转成字符
var name=10; console.log(typeof name)
显示结果为 string。
在window中有name属性--window.name为字符型。当我们声明name并赋值时,只不过是给window的name属性赋值而已,改变不了name的数据类型
JS中有趣的知识的更多相关文章
- js中有趣的闭包(closure)
一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量 ...
- js中的对象知识总结
文章目录: 1. 比较两个对象是否相等 1. 比较两个对象是否相等 通过===运算符,只有在两个变量指向同一个对象时才返回true,否则返回false.要想比较两个对象中的内容是否相等,需要利用遍历对 ...
- JS中有趣的内置对象-JSON
前言 在以前的web开发中,我们多数选择纯文本或XML作为我们的提交的数据格式,大多数是XML,少数纯文本.其实从AJAX(Asynchronous JavaScript and XML)的命名我们也 ...
- js中实现杨辉三角
实现效果:杨辉三角 即: 提示用户输入要实现的杨辉三角行数: 请输入杨辉三角的行数: 8 代码实现后的效果如下: 1 1.1 1.2.1 1.3.3.1 1.4.6.4.1 1.5.10.10.5.1 ...
- js中函数的一些理论知识
函数的一些理论知识 1. 函数: 执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的 ...
- Vue.js中Directive知识
近期所学的Vue.js这个MVVM前端技术缓解了我一直愁于前后端开发杂糅所带来的痛苦.今天就来说说关于Vue.js里面的Directive知识. Directive Directive看上去虽然和An ...
- js中错误处理的相关知识
错误bug是指程序执行过程中,导致程序无法正常执行的情况. 后果:程序会强行中断退出: 错误处理: 即使程序出现错误,也保证程序不异常中断的机制. 一般的使用的代 ...
- 二、js中基础知识
该篇文章主要是强化一下自己javaScript的基础,让写代码变得更轻松些.基础好的请忽略. JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解 ...
- 谈一谈原生JS中的【面向对象思想】
[重点提前说:面向对象的思想很重要!] 最近开始接触学习后台的PHP语言,在接触到PHP中的面向对象相关思想之后,突然想到之前曾接触的JS中的面向对象思想,无奈记性太差, ...
随机推荐
- SPOJ1693 COCONUTS - Coconuts
传送门[洛谷] 自闭QAQ 什么玩意QAQ 不是很理解到底在干啥 问了巨佬以后大概是这个样子的 可以看出是最小割模型 对于每一个人 反悔的话就是代价+1 那么连接(s,i) (i,t)分别表示他最后选 ...
- 剑指Offer-51.构建乘积数组(C++/Java)
题目: 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1].不能 ...
- 人生苦短_我用Python_openpyxl库读取Excel文件数据_008
上图为读取的目标文件--------------------------------------------------------------------------------- # coding ...
- git 如何删除远程仓库的错误提交
前言 最近一个版本发生产环境以后,忘了把分支切回开发分支,直接在release分支上开发新功能提交了....于是就需要去删除远程仓库的错误提交. git命令行实现 1.强制返回上次的版本(~1回退到上 ...
- boost timer
Boost.Timer provides clocks to measure code performance. At first, it may seem like this library com ...
- 趣头条基于 Flink 的实时平台建设实践
本文由趣头条实时平台负责人席建刚分享趣头条实时平台的建设,整理者叶里君.文章将从平台的架构.Flink 现状,Flink 应用以及未来计划四部分分享. 一.平台架构 1.Flink 应用时间线 首先是 ...
- 【HDOJ6586】String(枚举)
题意:给定一个由小写字母组成的字符串S,要求从中选出一个长度为k的子序列,使得其字典序最小,并且第i个字母在子序列中出现的次数在[l[i],r[i]]之间 n,k<=1e5 思路:大概就是记一下 ...
- Eternal Victory
题目链接 题意:给出n个点,再给出n-1条路,想一口气从1走完n个点的最小距离. 思路:好像它不构成环!md没看清题目,所以说每次遍历完全部的点后,最短的路就是每条边的距离*2减去最长路的距离. 所以 ...
- [CSP-S模拟测试]:kill(二分答案+贪心)
题目传送门(内部题50) 输入格式 第一行包含四个整数$n,m,s$,表示人数.怪物数及任务交付点的位置.第二行包含$n$个整数$p_1,p_2,...,p_n$.第三行包含$n$个整数$q_1,q_ ...
- Houdni学习——【三】裂开的墙砖
Houdni学习--[三]裂开的墙砖 Houdinisophoudinisop Houdni学习--[三]裂开的墙砖 一.OverView 一条从板块上裂开的纹路,并在一段距离后逐渐变细. sop 二 ...