强类型的意思是,在编译的时候,已经确定类型了。
弱类型的意思是,在运行的时候,才确定类型
强类型的意思是,在编译的时候,已经确定类型了。
弱类型的意思是,在运行的时候,才确定类型
转载于:https://www.cnblogs.com/bingyizhihun/p/10763929.html
sql语言是弱类型语言,今天根据这个特性做了个小测试
在sql语句里“="是判断的意思,并不是赋值。
根据上图,**‘1test’**这是一个字符窜,而他第一个字符是1,就类似于MD5弱类型绕过
所以返回true。这样我们根据这个特点来访问数据库看看
可以发现我们访问数据库成功
’1d’=1返回true,所以成功执行,查询所有的数据我在搜索sql弱类型语言绕过的资料的时候发现了新的方法。
根据这个特性
password='asdd'=''
由于sql查询从左到右执行的,因为密码不是asdd所以返回false
而false=’’,在sql语句里是返回true的,因为在sql语句里,NULL就是0就是false。
所以可以成功被执行,这样就成功查询了。
静态类型语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型,某些具有类型推导能力的现代语言可能能够部分减轻这个要求.
动态类型语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。
强类型语言是一旦变量的类型被确定,就不能转化的语言。实际上所谓的貌似转化,都是通过中间变量来达到,原本的变量的类型肯定是没有变化的。
弱类型语言则反之,一个变量的类型是由其应用上下文确定的。比如语言直接支持字符串和整数可以直接用 + 号搞定。当然,在支持运算符重载的强类型语言中也能通过外部实现的方式在形式上做到这一点,不过这个是完全不一样的内涵
通常的说,java/python都算是强类型的,而VB/Perl/C都是弱类型的.
不过相比于动态/静态语言的分类,强类型/弱类型更多的是一个相对的概念。
本文属于转载知识点,以下是原博文作者:不死鸟哇的文章,文章链接:原文JavaScript里什么情况下a==!a为true呢?
今天群里有位同学问了这样一个问题,JavaScript在什么情况下会出现变量a == !a为true呢?据说是在司徒正美的书里看到的。我觉得这个问题有点意思,涉及到了隐式类型转换的问题,与大家分享一下吧!
答案是当a = []的时候,这个答案我一开始也没想出来。而是在调试器试了几次之后知道的。但是其中的原因我是明白的。这是因为JavaScript的类型转换。
我们先来考虑这个问题,console.log([] == false)会打印什么呢?
答案是true。为什么呢?
首先,因为当"=="号两边其中一个是布尔值的话,先把它转换为数字(ECMAScript的规范)。于是就变成了求[] == 0。
然后问题是为什么[]==0会是true呢?这是因为当"=="的一边是字符串或数字,另一边是对象的时候(数组也是对象),先把对象值转换为原始值再判断相等。对象值到原始值是怎么转换的呢?.对于所有非日期雷对象来说,对象到原始值的转换基本上就是对象到数字的转换。有3个步骤:
1.所有对象先调用valueOf()方法,如果此方法返回的是原始值,则对象转为这个原始值。
2.如果valueOf方法返回的不是原始值,则调用toString方法,如果toString方法返回的是原始值吗,则对象转换为这个原始值。
3.如果valueOf和toString方法均没有返回原始值,则抛出TypeError异常.
好,让我们看看[]到原始值的转换是怎么样的?首先调用[].valueOf()方法,返回值是对象自身,即[],这不是一个原始值。所以继续调用[].toString()方法,返回的是空字符串"",这是一个原始值,所以此值就作为对象转换为原始值的输出。于是问题就变成了求"" == 0.
最后,为什么"" == 0会是true呢?相信很多同学都知道了,当"=="两边一个是字符串一个是数字的时候,先把字符串转为数字,再进行比较。“”转成数字为0,所以最后得出[] == false为true。
让我们回到标题 [] == ![]为什么是true。!的优先级比==要高,所以会先执行![]。也就是先把[]转为布尔类型再取反。[]转布尔值是true,为什么呢?因为在JavaScript里除了false自身以外只有5个假值,分别是“”,undefined, null, 0, NaN。除了这5个假值以外,其他所有值转布尔类型都是true。一切对象都是真值,包括new Boolean(false)。于是问题就成了刚才我们讨论的 [] == false了。故得到 [] == ![]为true。
转载于:https://www.cnblogs.com/fantasy-zxf/p/7265945.html